2016-05-10 13 views
0

我是ASP.NET或C#編程的新手。在我的新任務,我的工作添加認證的中間件,檢查JWT令牌驗證等 我關注了此網址到認證中間件添加到我的ASP.net應用程序 - http://odetocode.com/blogs/scott/archive/2015/01/15/using-json-web-tokens-with-katana-and-webapi.aspx在發佈模式下獲取用於jwt令牌請求的404

雖然我已經成功地讓訪問/令牌url時生成的令牌,但只有在調試模式下才能運行。如果我將構建配置更改爲Release,則訪問/令牌url會開始給我404錯誤。

我比較了在Visual Studio 2013 Output視圖中顯示的輸出,並在調試模式下找到了額外的兩行,這些行在Release模式下不顯示。 這兩行是 -

'MetaAPI.vshost.exe'(CLR v4.0.30319:MetaAPI.vshost.exe):Loaded'C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Web.Extensions \ v4.0_4.0.0.0__31bf3856ad364e35 \ System.Web.Extensions.dll」。找不到或打開PDB文件。

'MetaAPI.vshost.exe'(CLR v4.0.30319:MetaAPI.vshost.exe):Loaded'C:\ windows \ Microsoft.Net \ assembly \ GAC_32 \ System.Web \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Web.dll中」。找不到或打開PDB文件。

我不知道這些是否表明問題的根源。我添加了對該項目的System.Web和System.Web.Extensions的引用,但它沒有幫助。

如何解決這個問題?任何建議?

回答

2

最有可能的,因爲#if DEBUG條件

public class MyOAuthOptions : OAuthAuthorizationServerOptions 
{ 
    public MyOAuthOptions() 
    { 
     TokenEndpointPath = "/token"; 
     AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60); 
     AccessTokenFormat = new MyJwtFormat(); 
     Provider = new MyOAuthProvider(); 
     #if DEBUG // HERE 
      AllowInsecureHttp = true; 
     #endif 
    } 
} 

Release ModeMyOAuthOptions預期在HTTPS流量。只要刪除#if DEBUG#endif並保留AllowInsecureHttp = true如果您在本地計算機或不安全的http上測試您的應用程序。

請記住雖然在生產環境HTTPS是必須的,上面的代碼應該工作得很好。

+0

謝謝,這的確是問題所在, – tyrion