2009-09-09 7 views
0

Je joue avec DevDefined.OAuth - une implémentation de consommateur et de fournisseur OAuth pour .Net http://code.google.com/p/devdefined-tools/wiki/OAuth et sur le lancement du projet ExampleConsumerSite après avoir configuré les points de terminaison de service sur mon serveur Web IIS 7, Je reçois l'erreur suivante:OAuth Demande de client pour le jeton de ServiceProvider renvoie InternalServerError

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Exception: Request for uri: http://localhost:8080/RequestToken.aspx?oauth_callback=oob&oauth_nonce=94efde0b-dd45-4cee-8253-7496cef0b877&oauth_consumer_key=key&oauth_signature_method=PLAINTEXT&oauth_timestamp=1252512419&oauth_version=1.0&oauth_token=&oauth_signature=secret%2526 failed. 
status code: InternalServerError 

An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Source Error: 
[HttpException]: 'RequestToken' is not allowed here because it does not extend class 'System.Web.UI.Page'. 
    at System.Web.UI.TemplateParser.ProcessError(String message) 
    at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) 
    at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) 
[HttpParseException]: 'RequestToken' is not allowed here because it does not extend class 'System.Web.UI.Page'. 
    at System.Web.UI.TemplateParser.ProcessException(Exception ex) 
    at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) 
    at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) 
[HttpParseException]: 'RequestToken' is not allowed here because it does not extend class 'System.Web.UI.Page'. 
    at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) 
    at System.Web.UI.TemplateParser.ParseReader(StreamReader reader, VirtualPath virtualPath) 
    at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) 
    at System.Web.UI.TemplateParser.ParseInternal() 
    at System.Web.UI.TemplateParser.Parse() 
    at System.Web.UI.TemplateParser.Parse(ICollection referencedAssemblies, VirtualPath virtualPath) 
    at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() 
    at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) 
    at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 
    at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 
    at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) 
    at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) 
    at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) 
    at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) 
    at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) 
    at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) 
    at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) 
    at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

J'ai remarqué le paramètre oauth_token GET est vide. En traçant cela, la source d'erreur est de la ligne 12 de la page Default.aspx.cs:

IToken requestToken = session.GetRequestToken(); 

protected void oauthRequest_Click(object sender, EventArgs e) 
{ 
    OAuthSession session = CreateSession(); 

    IToken requestToken = session.GetRequestToken(); 

    if (string.IsNullOrEmpty(requestToken.Token)) 
    { 
    throw new Exception("The request token was null or empty"); 
    } 

    Session[requestToken.Token] = requestToken; 

    string callBackUrl = "http://localhost:" + HttpContext.Current.Request.Url.Port + "/Callback.aspx"; 

    string authorizationUrl = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl); 

    Response.Redirect(authorizationUrl, true); 
} 

Bien que je ne sais pas si cela a à voir avec la configuration des points de terminaison de service mais je suis en cours d'exécution du consommateur projet de VS2008 et l'hébergement du service sur IIS. Veuillez nous conseiller

Répondre

0

Travailler maintenant. L'erreur était due à la page RequestToken.aspx dans le OAuthChannel n'héritant pas la classe correcte derrière ainsi quand le site de consommateur faisait une demande pour un jeton qui a entraîné une erreur de serveur interne du côté ServiceProvider.