IOException:找不到网络名称

时间:2016-04-05 09:35:43

标签: c# asp.net asp.net-mvc ioexception

我在C#上运行一个C#MVC网站很长一段时间。最近,我在记录器数据中注意到了这条日志消息:

guess

我也知道:

  1. System.IO.IOException: The network name cannot be found. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileSystemEnumerableIterator`1.CommonInit() at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost) at System.IO.Directory.EnumerateFiles(String path) at System.Web.WebPages.Deployment.WebPagesDeployment.AppRootContainsWebPagesFile(String path) at System.Web.WebPages.Deployment.PreApplicationStartCode.OnChanged(String key, Object value, CacheItemRemovedReason reason) at System.Web.Caching.CacheEntry.CallCacheItemRemovedCallback(CacheItemRemovedCallback callback, CacheItemRemovedReason reason) 文件中抛出此异常。
  2. 这种情况在几周内就会发生一次。但是,当它发生时,我在记录器中几次看到这个异常(每个异常之间延迟一秒)。
  3. 如您所见,此调用堆栈中没有任何内容存在于我的代码中。因此,我不知道如何重复这个或解决这个问题。

    您如何建议我解决此问题?任何提示都会有所帮助。

2 个答案:

答案 0 :(得分:3)

查看source code,此异常由框架本身触发。

它尝试枚举HttpRuntime.AppDomainAppPath中的所有文件。看起来这个路径在您的场景中并不总是可用,这看起来有点奇怪。你在哪里托管你的文件?

我建议您记录HttpRuntime.AppDomainAppPath的值并从那里搜索。我认为这将是一个相当不寻常的价值......

答案 1 :(得分:-4)

网络可能已关闭你可以通过简单地添加一个catch来捕获这个异常并显示一条消息,说明网络名称的主机已经关闭并且它应该在尝试再次尝试之前修复网络问题。