2013-04-03 35 views
2

我有一個包裝Dynamics CRM Online Web服務並提供REST API的WebApi項目。我有一個簡單的控制器,從CRM獲取一些聯繫人並將它們返回給調用者。部署到Azure的WebApi - 控制器不工作(500錯誤)

當我在本地模擬器中運行它時,一切正常。但是,將項目部署到Azure時,我可以訪問主頁,但控制器都返回http 500錯誤。爲什麼會發生?如何解決問題以獲取更多詳細信息?

UPDATE

問題是運行在Azure的Web角色的服務器實例2012沒有Microsoft.IdentityModel.dll的。我通過在RDP中打開Web角色實例,安裝Fiddler以及將Fiddler的請求發送到本地IIS服務器來發現此問題。它回答了詳細的錯誤。

現在我的問題是搞清楚如何在Windows Azure Web角色上啓用IdentityModel。您應該可以通過Server 2012添加角色和功能嚮導添加它,但它完全鎖定在Web角色上。您無法檢查任何尚未檢查的框。這甚至有可能嗎?

+1

嘗試這篇文章[http://blogs.technet.com/b/dodeitte/archive/2012/07/20/issue-when-installing-windows-identity-foundation-on-windows-server- 2012.aspx](http://blogs.technet.com/b/dodeitte/archive/2012/07/20/issue-when-installing-windows-identity-foundation-on-windows-server-2012.aspx) –

+0

感謝Guido,看起來很有幫助。它不適用於我,因爲Windows Azure中的Web角色不允許啓用.NET 3.5(或者至少必須在啓用它之前安裝它,必須通過安裝介質或Windows Update完成安裝,這兩者在Azure Web角色中似乎都不可能)。但這是一個不同的問題。謝謝你的回答。 –

+1

只需在您的項目參考中將本地複製設置爲true即可。 –

回答

1

問題在於,當Windows身份驗證本身不存在時,將Web角色訪問權授予Windows身份驗證基礎。馬克Schweigert提供清晰的步驟,在這裏做這樣的:

http://blogs.msdn.com/b/devkeydet/archive/2013/01/27/crm-online-amp-windows-azure-configuring-single-sign-on-sso.aspx

轉至23:00標誌的視頻,你會看到4個必要步驟:

  1. 參考Microsoft.IdentityModel。 dll(需要安裝WIF SDK) a。設置複製本地=真正
  2. 在你的Web角色項目創建RegisterWIFGAC.cmd
  3. 創建啓動任務ServiceDefinition.csdef中調用RegisterWIFGAC.cmd
  4. 添加GACUTIL到項目(在啓動任務中使用),把微軟每次啓動Web角色時,GAC中的.IdentityModel.dll)。
相關問題