2012-07-21 103 views
1

我已經在Windows 8發佈預覽中使用visual studio 2012 RC創建了ASP.NET MVC 4應用程序。我下載並安裝了WIF工具包,並使用解決方案菜單中的「身份和訪問」選項來添加我的訪問控制服務元數據端點。本地測試,一切都很好。當我部署到我的免費蔚藍的網站,但是我得到了黃屏說訪問控制服務和Azure網站無法加載System.IdentityModel.Services

「無法加載文件或程序集System.IdentityModel.Services, 版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089'或 其依賴項之一。系統找不到指定的文件。「

這些程序集未在項目中引用,因此我添加了它們,發送到輸出到bin文件夾並重新部署。然後我收到了有關該組件可能被篡改的消息。有誰知道如何克服這個問題?

編輯 添加本地導致此錯誤

無法加載文件或程序集「System.IdentityModel.Services」或一個 的依賴。強名稱簽名無法驗證。 程序集可能已被篡改,或者它是延遲簽名的,但不是用正確的私鑰完全簽名的 。 (異常來自HRESULT: 0x80131045)

在web配置的模塊deinfed爲

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules> 
     <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
     <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
    </system.webServer> 

感謝

+0

嘗試引用這些程序集並將它們標記爲「Copy local = true」,然後重新部署該項目。 – astaykov 2012-07-21 22:00:04

+0

是的我試過了,它說該程序集可能已被篡改 – Dylan 2012-07-21 22:16:03

回答

1

System.identityModel.Services是一個不帶.NET Framework 4.0版本的.NET Framework 4.5 namespace。 Windows Azure網站不支持.NET Framework 4.5。

+0

謝謝。我在VS 2012中將解決方案定位爲.NET 4,但我想它忽略了它。我可能會在Win 7中將其設置在VS 2010中,然後導入它。 – Dylan 2012-07-22 00:43:36

1

我覺得這是在Azure中的已知問題,你需要使用運行gacutil.exe的啓動腳本來註冊IdentityModel.dll。

這裏按照以下步驟:http://blogs.infosupport.com/adding-assemblies-to-the-gac-in-windows-azure/

編輯:
我不好,我還以爲你在談論一個Web角色。正如astaykov所說,你不能在網站上啓動任務。那麼也許這會幫助別人:-)

+0

問題是關於Azure WebSites,而不是Azure WebRole! Azure WebSites中沒有任何啓動任務,也沒有在GAC中擁有任何選項的選項! – astaykov 2012-07-21 21:57:58

1

所以,你需要明確地添加Idendity程序集作爲你的Web應用程序項目的引用,然後明確地將他們的「Copy Local」屬性設置爲「True」,然後按照這MSDN forums thread和使用this session token handler。通讀blog post

按照所有步驟,您將擁有支持WIF的ACS消費應用程序,就像我在此創建的應用程序:http://wawsacs.azurewebsites.net/(請注意,2012年7月25日我將刪除此網站)。

+0

出於興趣是你使用Win 7或8,以及哪個版本的Visual Studio。我遵循了這些步驟,但仍然得到了篡改錯誤。我在想這可能是由Win8 – Dylan 2012-07-21 22:51:58

+0

Win7 permium x64,.net 4.0,mvc3引起的.net 4.5的問題。 – astaykov 2012-07-22 20:51:32