因此,我不得不在我们的一个服务器上重新设计一个 Web 应用程序,一个旧应用程序,它需要通过一个以前没有的通用母版页来获得新的品牌。该页面显示正常,但是上面有一个表单,该表单调用已编译 dll 中的方法,该方法允许用户下载文档。这会引发错误,但错误是模糊的(提到空引用)。我们有源代码,但我的机器上没有安装 Visual Studio,即使我安装了,我们也怀疑它可能与服务器环境有关,并且服务器没有设置为运行项目文件,只是编译了 web应用。我的一位同事认为,通过删除 dll,该应用程序将只使用 cs 文件并在运行时对其进行编译。那没用,另一位同事建议在 web.config 中打开调试,我们这样做了,但还是不行。他还提到调试需要 pdb 文件,但我在我们拥有的源代码中没有看到任何内容。如果我可以仅使用cs文件与dll在服务器上运行它,我至少可以尝试调试正在发生的事情,关于如何让它工作的任何想法?
问问题
724 次
1 回答
3
关于 ASP.NET 应用程序的工作方式,这里似乎存在很多混淆。
首先,.CS 文件对 IIS 没有意义。IIS 知道包含标记的文件。它还知道 bin 文件夹中包含的程序集代表处理传入请求并生成出站响应的服务器端代码。
在大多数情况下,将站点部署到生产服务器时,不包括 .CS 文件,因为它们只是服务器上的噪音,无用的文件杂乱无章,对应用程序的执行没有任何影响。
现在,你有点幸运,因为你有源文件。实际上,您可以强制重新编译缓存的程序集。为此,请打开站点的 web.config 文件并在第一行的末尾添加一些空格(单个空格)。然后保存文件。这将导致 ASP.NET 清除其缓存并重建站点。
这不能保证解决您的问题。就像你说的,问题可能出在其他地方。我强烈建议您下载整个站点,安装 Visual Studio(如果需要,获取免费的速成版),然后调试该死的东西。
如果你不能在调试器中运行它并观察它的执行,你只是在猜测。
PS如果这东西不受源代码控制,尽快把它弄到那里。
于 2013-10-22T14:59:37.390 回答