如何修改预编译的ASP.NET网站? Visual Studio抱怨该站点已预编译

时间:2009-07-06 21:59:01

标签: c# asp.net soap

我在ASP.NET(C#)上有一个Web应用程序,它有一些预编译组件。我一直在支持它,没有任何问题,添加功能和扩展。现在我正面临另一个需要调用远程SOAP服务的扩展。

我已经尝试过根据我在这里得到的一些建议 - 通过添加Web Reference,创建代理类等等,但Visual抱怨应用程序是预编译的。

以下是编译器的实际输出:

  

目录   '/ trxv / App_WebReferences /'不是   允许,因为应用程序是   预编译。描述:未处理   期间发生了异常   执行当前的Web请求。   请查看堆栈跟踪了解更多信息   有关错误的信息和位置   它起源于代码。

     

异常详细信息:   System.Web.HttpException:The   目录'/ trxv / App_WebReferences /'   不允许因为申请   是预编译的。

     

来源错误:

     

生成了未处理的异常   在执行当前   网络请求。有关的信息   异常的起源和位置   可以使用例外来识别   堆栈跟踪下面。

     

堆栈追踪:

     

[HttpException(0x80004005):The   目录'/ trxv / App_WebReferences /'   不允许因为申请   预编译。]
  System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath   virtualDir,CodeDirectoryType dirType,   字符串assemblyName,StringSet   excludedSubdirectories,布尔   isDirectoryAllowed)+8805619
  System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath   virtualDir,CodeDirectoryType dirType,   字符串assemblyName,StringSet   excludedSubdirectories)+128
  System.Web.Compilation.BuildManager.CompileWebRefDirectory()   +31 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()   312

     

[HttpException(0x80004005):The   目录'/ trxv / App_WebReferences /'   不允许因为申请   预编译。]
  System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()   +58 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()   +512 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager   appManager,IApplicationHost appHost,   IConfigMapPathFactory   configMapPathFactory,   HostingEnvironmentParameters   hostingParameters)+729

     

[HttpException(0x80004005):The   目录'/ trxv / App_WebReferences /'   不允许因为申请   预编译。]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext的   上下文)+8886319
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext的   上下文)+85
  System.Web.HttpRuntime.ProcessRequestInternal(的HttpWorkerRequest   wr)+259

     

版本信息:Microsoft .NET   框架版本:2.0.50727.3053;   ASP.NET版本:2.0.50727.3053

是否还有其他或多或少的简单(即高级)调用SOAP客户端的方法,不需要重新编译?不幸的是,该系统的原始源代码不可用。

1 个答案:

答案 0 :(得分:1)

亚历,

请注意我最近的编辑。问题与您没有Web应用程序这一事实有关 - 您有一个Web站点。它们很独特,也很奇怪。

我从不使用它们,除非我必须这样做,所以我实际上从未见过这个例外。不过,它似乎确实是最终的。所以这是你必须解决这个问题的方法:

创建一个单独的类库项目。将Web引用添加到类库中,然后构建它。然后,看看您是否可以在网页中引用类库。类库应该包含代理类。