none
開啟Web service test.asmx 出現Error ---- 無法存取關閉的資源集 RRS feed

  • 問題

  • 我有一個Web Service 架在IIS7.5上,只要執行一陣子就會發生"無法存取關閉的資源集"的錯誤
    假如我開啟http://XXX.XX/WS/test.asmx就會出現"無法存取關閉的資源集"的錯誤,錯誤是發生在DefaultWsdlHelpGenerator.aspx
    這是微軟預設的頁面,看此頁面程式 應該是指 Application["RM"] = new ResourceManager("System.Web.Services", typeof(System.Web.Services.WebService).Assembly); 
    RM這個資源集被關閉 ,但是是誰去關閉的呢?????
    我有寫一個測試的Web Service 中斷點就下在錯誤那一行,想說手動關閉資源集看看,但是竟然找不到方法關閉,例如使用ReleaseAllResources都無法關閉,程式仍然正常執行

    如果我是開啟http://XXX.XX/WS/test.asmx?wsdl 因為不會跑DefaultWsdlHelpGenerator.aspx此頁,所以沒有問題
    而且在其他有參考此Web Service的程式,呼叫此Web Service 的Method也都可正常呼叫

    這個問題時在困擾了我很久,實在找不到問題發生的原因,不知道誰可以幫我解答呢??

    備註:
    1.使用同集區的其他Web Service皆正常,每次發生不一定是同一個Web Service,其它集區的Web Service偶爾也會零星出現此問題
    2.只要回收集區錯誤就會消失.
    3.Web Service是架在VM主機上

    -------------------------------------------------------------------
    無法存取關閉的資源集。 
    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 

    例外詳細資訊: System.ObjectDisposedException: 無法存取關閉的資源集。

    原始程式錯誤: 

    行 1368:    string GetLocalizedText(string name, object[] args) {
    行 1369:      ResourceManager rm = (ResourceManager)Application["RM"];
    行 1370:      string val = rm.GetString("HelpGenerator" + name);
    行 1371:      if (val == null) return String.Empty;
    行 1372:      return String.Format(val, args);

    原始程式檔: c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx    行: 1370 

    堆疊追蹤: 

    [ObjectDisposedException: 無法存取關閉的資源集。]
       System.Resources.RuntimeResourceSet.GetObject(String key, Boolean ignoreCase, Boolean isString) +1657
       System.Resources.RuntimeResourceSet.GetString(String key, Boolean ignoreCase) +12
       System.Resources.ResourceManager.GetString(String name, CultureInfo culture) +278
       ASP.defaultwsdlhelpgenerator_aspx.GetLocalizedText(String name, Object[] args) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx:1370
       ASP.defaultwsdlhelpgenerator_aspx.GetLocalizedText(String name) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx:1365
       ASP.defaultwsdlhelpgenerator_aspx.__DataBind__control4(Object sender, EventArgs e) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx:1454
       System.Web.UI.Control.OnDataBinding(EventArgs e) +132
       System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +170
       System.Web.UI.Control.DataBindChildren() +11143327
       System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +182
       System.Web.UI.Control.DataBindChildren() +11143327
       System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +182
       ASP.defaultwsdlhelpgenerator_aspx.Page_Load(Object sender, EventArgs e) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx:1443
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
       System.Web.UI.Control.OnLoad(EventArgs e) +132
       System.Web.UI.Control.LoadRecursive() +66
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428

    --------------------------------------------------------------------------------
    版本資訊: Microsoft .NET Framework 版本:2.0.50727.5477; ASP.NET 版本:2.0.50727.5483 


    • 已變更類型 George.Chang 2014年8月13日 上午 01:47 No Known Solution
    • 已變更類型 George.Chang 2014年8月27日 上午 02:59 問題排除
    2014年8月7日 上午 09:38

解答

所有回覆

  • 平常運行是沒事,但有一天忽然就發生以下錯誤,雖然回收應用程式集區後就正常了

    但我依然不知道為什麼會發生此問題

    下面錯在行1370 這是底層的程式並不是我自己寫的程式

    請問誰可以幫我解答一下嗎?


    例外詳細資訊:System.ObjectDisposedException:無法存取關閉的資源集

    原始程式錯誤:

    行 1368:  String GetLocallizedText(string name,object[] args){

    行 1369:      ResourceManager rm = (ResourceManager)Application["RM"];

    行 1370:      String val = rm.GetString("HelpGenerator" + name );

    行 1371:      if (val == null) return String.Empty;

    行 1372:      return String.Format(val ,args);


    2013年11月13日 上午 02:47
  • 1369行應該是你有自己修改過吧

    看起來就是某個地方把它Dispose了,因為是全域共用,所以其它地方就會一直壞下去

    2013年11月14日 上午 04:13
    版主
  • Hi ruby2002

    歡迎您將後續測試結果回報至論壇, 或將對您有幫助的回覆標示為解答,

    以利討論的進行並幫助其他有類似問題的朋友. 謝謝您!

    2013年11月18日 上午 09:01
  • 此程式是個WEB SERVICE

    錯誤是在 c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\DefaultWsdlHelpGenerator.aspx

    是微軟的WEB SERVICE預設會讀的頁面,所以並無修改也無另寫程式去關閉資源集

    我另外發個一個問題有比較詳細的敘述

    http://social.msdn.microsoft.com/Forums/zh-TW/0e4e2803-6aac-4781-9e97-1529ebeabe78/web-service-testasmx-error-?forum=236

    麻煩幫忙看一下,謝謝

    2014年8月7日 上午 09:46
  • 目前還找不到原因 ><

    2014年8月7日 上午 09:48
  • 您的WEB SERVICE是放在.NET 2.0的應用程式集區執行嗎? 如果是的話, 把WEB SERVICE放到.NET 4.0的應用程式集區執行看看是否可以解決..
    2014年8月8日 上午 02:24
  • 可是主機目前還沒有升級的計劃 所以沒辦法把它放到.NET 4.0的應用程式集區執行



    • 已編輯 ruby2002 2014年8月13日 上午 03:37
    2014年8月8日 上午 04:01
  • 安裝此hotfixc後已解決
    • 已標示為解答 George.Chang 2014年8月27日 上午 03:00
    2014年8月27日 上午 02:49
  • 此連結中並沒有顯示下載連結,請問您是在哪裡下載的? 可否提供? 謝謝.
    2014年9月30日 上午 04:17
  • Hi

    這KB的下載必須聯繫客服人員進行處理,電話是0800-008833,

    或是您用KB2461007搜尋也會找到網友上傳提供的下載位置。


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2014年10月1日 上午 03:46