2008-10-29 45 views
3

我通常討厭發佈這些類型的問題,因爲通常我發現真正學習的最佳方法是自己找出答案。ASP.NET WebPermission安全例外

但是,我非常需要這個問題的答案,因爲我有一個客戶由於這個問題而無法開展業務。

昨天我的ASP.NET主機提供程序將我的應用程序從運行.NET 1.1的服務器移動到運行.NET 1.1和2.0的服務器。我的問題是,當我測試移動時,主站點頁面(Default.aspx)將不會加載

「描述:應用程序試圖執行安全策略不允許的操作。要授予此應用程序所需的權限請聯繫您的系統管理員或在配置文件中更改應用程序的信任級別。

異常詳細信息:System.Security.SecurityException:請求「System.Net.WebPermission,System,Version = 2.0」類型的權限。 0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失敗。「

[拋出:SecurityException:請求類型的權限 'System.Net.WebPermission,系統,版本= 2.0.0.0,文化=中性公鑰= b77a5c561934e089' 失敗] System.Security.CodeAccessSecurityEngine.Check(對象的需求,StackCrawlMark & stackMark,布爾isPermSet)+0 System.Security.CodeAccessPermission.Demand()+59 System.Net.HttpWebRequest..ctor(URI URI,的ServicePoint服務點)+147 System.Net.HttpRequestCreator.Create (Uri Uri)+26 System.Net.WebRequest.Create(Uri requestUri,Boolean useUriBase)+298 System.Net.WebRequest.Create(Uri requestUri)+28System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri)+12 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri) URI)4 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串方法名,對象[]參數)52 PilatesPlusDublin.PilatesPlusDublinws.PilatesPlus.InsertException(字符串sModuleName,字符串sException,的Int32 iUserID)97 PilatesPlusDublin。 MainDefault.Page_Load(Object sender,EventArgs e)+144 System.Web.UI.Control.OnLoad(EventArgs e)+99 System.Web.UI.Control.LoadRecursive()+47 System.Web.UI.Page .ProcessRequestMain(布爾includeStagesBeforeAsyncPoint,布爾includeStagesAfterAsyncPoint) +7350 System.Web.UI.Page.ProcessRequest(布爾includeStagesBeforeAsyncPoint,布爾includeStagesAfterAsyncPoint)+213 System.Web.UI.Page.ProcessRequest()+86 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)+ 18 System.Web.UI.Page.ProcessRequest(HttpContext的上下文中)+49 ASP.maindefault_aspx.ProcessRequest(HttpContext的上下文)4 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()358 System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾&已同步完成)+64「

如果WebPermission在託管站點不可用,我如何配置我的網站以允許訪問該頁面?是否有一些標籤需要放入web.config中?請注意 - 我們無法訪問machine.config或任何其他IIS設置。

我明白,人們討厭閱讀和回答這些類型的問題,但對我,還是我的託管網站需要做什麼來解決這個問題的任何幫助,將大大讚賞

回答

1

是您的Web應用程序調用Web服務或訪問外部網站?如果是這樣,您可能需要與您的託管服務提供商交談,並要求將URI添加到允許的連接終端列表中。

+0

確實如此。這是我在同一臺服務器上創建並託管的Web服務。我會就此與他們聯繫,並非常感謝您的幫助。 – Skittles 2008-10-29 05:03:24

+0

ff。鏈接可能有助於加快速度,如果您正在與不太清楚您正在討論的設置的技術人員交談: http://www.wrox.com/WileyCDA/Section/Using-the-WebPermission-設置在ASP-NET-Partial-Trust.id-291738.html – Maxam 2008-10-29 05:10:40

2

我張貼這個以防萬一它幫助其他人。在將由您的提供商託管的現有ASP.NET網站移至其他服務器之前,請先進行警告。

請確保您詢問了關於WEBPERMISSIONS和TRUST LEVELS。

這是我的供應商回覆....

「謝謝你的來信。

這是失敗,因爲WebPermission的是不是在中等信任環境中使用。

我們可以」因爲我們計劃在今年年底之前將所有站點遷移到一對新的集羣上,我相信新的Windows集羣將具有WebPermission,因爲它已啓用目前的Namesco Windows集羣。「

因此,他們希望我的客戶的網站脫機,並在新的一年之前失去業務。

2

就像任何人可能有同樣的問題 - 我得到了這個確切的錯誤信息,並不知道什麼是錯的,因爲我沒有改變我的本地盒子上的任何設置。

幾分鐘後,我意識到我不小心打開了Windows Server 2008上的網絡共享項目。當然權限是不正確的!真的很愚蠢的舉動,但如果它幫助某人,我願意羞辱:)

5

不知道這是否會有所幫助,但我曾經有一個客戶與同類型的問題。他們的虛擬主機公司做出了一些改變,導致他們的網站拋出類似的錯誤。好不容易纔得到的東西加入再次合作下只是在web.config中system.web節內:

<trust level="Full" /> 

如果這不能解決您的問題和網站主辦不能對他們解決的事情,直到新一年,我會認真考慮切換託管服務提供商。