2009-09-09 3 views
0

私はDevDefined.OAuth - OAuthコンシューマとプロバイダ実装の.Net http://code.google.com/p/devdefined-tools/wiki/OAuthを使用しています。IIS 7 Webサーバーでサービスエンドポイントを設定した後でExampleConsumerSiteプロジェクトを起動すると、私はoauth_token GETパラメータが空である気づいたOAuth ServiceProviderからのトークンのコンシューマリクエストが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) 

:私は次のエラーを受信して​​います。これをトレースするには、誤差源は、Default.aspx.csページの12行目からです:

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); 
} 

私は、これはサービスエンドポイントの設定に関係しているかはわからないが、私は消費者を実行している間VS2008からのプロジェクトとIIS上でのサービスのホスト。ご意見をお聞かせください。

答えて

0

現在作業中です。エラーは、OAuthChannelのRequestToken.aspxページが原因で、コンシューマサイトがServiceProvider側で内部サーバーエラーを起こしたトークンをリクエストしているときに正しいクラスを継承していなかったためです。

関連する問題