我正在维护一个完全用ASP经典编写的网站。我正在使用ASP.NET添加一些新的集成,但遇到了一些麻烦。
我的应用程序在Visual Studio中运行100%,但是当我发布它时,我收到了这个错误:
Parser Error Message: Could not load type 'Int.OAuth'
Source Error:
Line 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OAuth.aspx.cs" Inherits="Int.OAuth" %>
该行来自OAuth.aspx
Visual Studio将bin文件夹正确放入包含.aspx文件的文件夹中,并且它包含所有.dll,但似乎ASP.NET无法找到它们。这可能是因为我的应用程序不在站点根目录吗?我的应用程序位于:/ADMIN/api/services/int/
。
我尝试过的事情:
1。尝试将bin文件夹添加到装配绑定中。
我在网上看到很多来源说要告诉ASP.NET有关DLL的文件夹,你可以将它添加到你的web.config中:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin/" />
</assemblyBinding>
</runtime>
我尝试使用相对路径和绝对路径,并仔细检查路径,但这没有任何影响。
2。尝试使用CodeFile=
代替CodeBehind=
在线资讯还建议改变:
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="OAuth.aspx.cs" Inherits="RqQb.OAuth" %>
到
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="OAuth.aspx.cs" Inherits="RqQb.OAuth" %>
这很不方便,因为Visual Studio在发布时不会上传aspx.cs
文件,因此每次进行更改时都必须手动执行此操作。
但它仍然没有解决问题。然后using
中的OAuth.aspx.cs
语句开始出错。这些是外部库,都在bin文件夹中,但显然没有找到。
第3。尝试将输出路径更改为/bin
好吧,这似乎不会改变任何东西,因为它在localhost上的Visual Studio中运行得很好,但是它会在发布时中断(并且所有的DLL都在bin
文件夹中正确)但是我检查无论如何,Build -> Output path
已正确设置为bin\
。
4。尝试重新启动visual studio,停止localhost,清理,重建然后再次发布。
没有改变任何东西。
对于那个总是问的聪明的aleck:我的问题是我有错误,所以我的问题是如何摆脱这个错误?