2009-09-09 5 views
0

.DebDefined.OAuth - OAuth 소비자 및 공급자 구현은. http://code.google.com/p/devdefined-tools/wiki/OAuth이고 IIS 7 웹 서버에서 서비스 끝점을 구성한 후 ExampleConsumerSite 프로젝트를 시작하면, 나는 다음과 같은 오류가 발생 해요 : 나는 GET의 oauth_token 매개 변수가 비어 나타났습니다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

현재 작업 중. 오류는 소비자 사이트가 ServiceProvider 측에서 내부 서버 오류가 발생한 토큰에 대한 요청을 만들 때 올바른 클래스를 상속하지 않는 OAuthChannel의 RequestToken.aspx 페이지 때문이었습니다.

관련 문제