我遇到了这个问题,下面列出了对我有用的方法。
线索是错误消息提到InternalXmlHelper.vb
. 我是 C# 程序员,为什么要提到 VB 组件?
如果您没有明确说明 ASPX 页面的编译语言,则可能会出现此问题。如果您没有明确说明,那么 IIS 将以该站点的默认语言进行编译。如果你是用 C# 写的,没有明确说明编译语言,而 IIS 中默认的编译语言是 C#,那么快乐的日子。但是,如果 IIS 中的默认编译语言设置为 vb(默认情况下似乎是这样),那么您的 C# 页面将像 vb 一样被编译,并且您会收到 BC30560 错误。
最好的解决方法是明确说明您的 aspx 页面的编译语言,方法是在每个 aspx 页面的顶部放置这样的指令:
<%@ Page Language="C#" %>
或者,您可以让您的页面不明确(没有页面语言指令)并告诉 IIS 使用什么作为默认编译语言,如下所示:
使用 IIS 管理器 -> 查看您网站的根目录(这将是您的服务器名称),然后 -> 在 ASP.NET 部分 -> 双击 .NET 编译图标(蓝色向下箭头) -> 在常规标题下的设置列表是默认语言的设置 -> 将此设置为c#
如果需要,您还可以设置每个网站的默认语言。与上面相同,但将其设置为左侧 IIS 树视图的根下方的网站,而不是它的根。请注意,如果您为网站设置 default-language=c#,则该设置将存储在web.config
您网站的根目录中 - 在该<system.web>
部分中,您将具有如下值:<compilation debug="false" defaultLanguage="c#" />
. 如果您在 中删除或覆盖该设置web.config
,它将恢复为 IIS 实例的默认设置。