如何判断一个dll指precompiled ASP.NET网站的页面 [英] How to tell what page a dll refers to in precompiled ASP.NET site

查看:217
本文介绍了如何判断一个dll指precompiled ASP.NET网站的页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是pre-编译ASP.NET 2.0的网站(即复制到使用建设 - >发布网站功能在Visual Studio 2005的服务器)。我赶上并记录这通常是非常详细的所有错误,但最近我已经收到以下错误,没有其它信息:

I'm using a pre-compiled ASP.NET 2.0 site (i.e., copied to the server using the "Build->Publish Web Site" feature in Visual Studio 2005). I catch and log all errors which are usually quite detailed, but lately I've been getting the following error with no other information:

无法加载程序集
  应用程序的Web-rp2eml-J。请确保它
  在访问页面之前进行编译。

Could not load the assembly 'App-Web-rp2eml-j'. Make sure that it is compiled before accessing the page.

现在,这就是应用程序的Web-rp2eml-J'文件的的在我的bin文件夹一个dll这是为pre-编译网站创建。我的主要问题是,如何,我告诉什么aspx页面正在寻找该DLL?我试图重新发布该网站,甚至彻底消灭网站并重新发布,但问题不会消失。

Now, that 'App-Web-rp2eml-j' file should be a dll in my bin folder which was created for the pre-compiled site. My main question is, how do I tell what aspx page is looking for that dll? I've tried re-publishing the site, and even completely wiping out the site and re-publishing, but the problem does not go away.

在谷歌搜索的问题,各地有关确保IIS此错误消息中心最答案被设置为使用ASP.NET 2.0,而不是1.1。的这不是我的问题。

When Googling the problem, most answers about this error message center around making sure IIS is set up to use ASP.NET 2.0 instead of 1.1. This is not my problem.

注1:该网站一切似乎工作,但显然是有(至少)一个页面被打破,我无法找到

NOTE 1: The site all seems to work, but obviously there is (at least) one page that is broken which I cannot find.

注2:上述文件名应该有下划线代替破折号,但SO的标记正在改变下划线的文本为斜体

NOTE 2: The file name above should have underscores instead of dashes, but SO's markup is changing the text between the underscores to italics.

推荐答案

请问提到的dll存在于您的bin目录?所以我怀疑它不你斜体字部分。这可能意味着该错误是指一个dll中的临时文件夹中。

Does the mentioned dll exist in your bin directory? You italicized that portion so I suspect that it doesn't. That could mean that the error is referring to a dll in the Temporary files folder.

如果一个或多个在ASP.NET临时文件夹中的DLL文件损坏,就可能会出现此问题。有时,如果ASP.NET中有DLL驻留在虚拟目录中没有更改不会在这里刷新文件。它在一段时间曾经发生的每我的服务器上。

This problem can occur if one or more of the dlls in the ASP.NET Temporary files folder are corrupted. Sometimes ASP.NET does not refresh files here if there are no changes in the dll residing in the virtual directory. It happens every once in a while on my server.

我的解决方案如下:


  1. 在服务器上为一分钟左右就停止IIS服务。

  1. Stop IIS services on the server for a minute or so.

导航到ASP.NET临时文件夹(通常位于%WINDIR%\\ Microsoft.NET \\框架\\\\临时ASP.NET文件\\ MyApplicationName),并清除该文件夹中的所有文件。

Navigate to the ASP.NET Temporary files folder (usually located at "%windir%\Microsoft.NET\Framework\\Temporary ASP.NET Files\MyApplicationName") and clear all files within the folder.

发布和上传我的网站配置的虚拟目录。

Publish and upload my site to the configured virtual directory.

重新启动IIS和其他服务。

Restart IIS and other services.

这简单的4步流程在过去的工作对我非常好,可能是值得你一试。

This simple 4-step process has worked very well for me in the past and may be worth a try for you.

要回答你的基本的问题,但是,有两种方式为反向工程一个DLL:

To answer your basic question, however, there are two ways to "reverse engineer" a dll:


  1. 加载它在ILDASM检查所包含的类。

  2. 使用反射来保存所有包含的DLL到一个文件夹中的类文件。

不过,我怀疑这是否会解决你的问题,因为每个DLL可以包含许多类文件,你不会有一个线索,这ASPX页面正在查​​找DLL。

However, I doubt if this will solve your problem because each dll could contain many class files and you would not have a clue as to "which ASPX page is looking for that dll".

这篇关于如何判断一个dll指precompiled ASP.NET网站的页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆