ASP.NET 中使用WebServer進行調試時,自訂的Identity出現 SerializationException的解決方案

來源:互聯網
上載者:User

今天遇到一個奇怪的問題,雖然已經解決了,但是原因仍然不是很清楚。

在建立的一個ASP.NET MVC中使用了自訂的Identity,在使用VS內建的WebServer調試時,發生了類似如下錯誤:

Type is not resolved for member'XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.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.Runtime.Serialization.SerializationException: Type is not resolved for member 'XAssembly.MyIdentity,XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.Source Error:An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:[SerializationException: Type is not resolved for member 'XAssembly.MyIdentity,XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.]   Microsoft.VisualStudio.WebHost.Connection.get_RemoteIP() +0   Microsoft.VisualStudio.WebHost.Request.GetRemoteAddress() +65   System.Web.HttpRequest.get_UserHostAddress() +18   System.Web.HttpRequest.get_IsLocal() +13   System.Web.Configuration.CustomErrorsSection.CustomErrorsEnabled(HttpRequest request) +86   System.Web.HttpContext.get_IsCustomErrorEnabled() +42   System.Web.Configuration.UrlAuthFailedErrorFormatter.GetErrorText(HttpContext context) +16   System.Web.Security.UrlAuthorizationModule.WriteErrorMessage(HttpContext context) +29   System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +8777783   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

同樣的代碼,在使用IIS或IIS Express進行調試或運行時,就不會出錯。

最初嘗試根據提示添加Attribute [Serializable]但是錯誤依舊。

後來將原來Identity的定義由

public class MyIdentity : IIdentity{//...}

改為

public class MyIdentity : MarshalByRefObject ,IIdentity{//...}

即解決,但是最終發生原因還是沒有探明,從異常上看來,似乎是WebServer內部的一個Bug。

References:

http://stackoverflow.com/questions/1277371/serializationexception-on-customidentity-when-user-is-denied-in-asp-net

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.