尝试在IIS7的默认应用程序池中部署。net 3.5网站,并将框架部分设置为4.0,我得到以下错误。

有一个副本 包含。扩展/脚本/ scriptResourceHandler”部分 定义的。

对这些冒犯的行进行评论也无济于事。你能给我点建议吗?


当前回答

在我的例子中,我有两个不同的应用程序共享同一个应用程序池。第一个使用的是。net4.5框架,而新的使用的是2.0。当我把第二个应用程序更改为它自己的应用程序池时,它开始工作很好,没有更改web.config。

其他回答

另一种避免此问题的方法可能会帮助其他人,即在可能的情况下将.net web服务构建到4.0或更高版本。

我已经解决了它,做以下步骤:

我在IIS中创建了一个新的应用程序组。 打开网站或web应用程序的高级设置 这个问题。 并设置新应用程序的组。

下面是这些步骤的图像:

在我的情况下,我想手动添加urlrewrite规则,看不到明显的错误(我错过了<rules>标签):

错误代码:

    <rewrite>
      <rule name="some rule" stopProcessing="true">
        <match url="some-pattenr/(.*)" />        
        <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
      </rule>
    </rewrite>    

  </system.webServer>
</configuration>

正确的代码(带有规则标签):

    <rewrite>
      <rules>
        <rule name="some rule" stopProcessing="true">
          <match url="some-pattenr/(.*)" />        
          <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>

Necromancing。 如果你的web中没有任何system.web.extensions config-sections或handler/module条目。此问题是由于您/其他人复制了VisualStudio-Project(2013/2015/2017),而隐藏文件未隐藏。

因此,它不仅会复制.git,还会复制. vs,其中包含一个IIS-Express应用程序主机。配置文件,指向web。配置文件路径不存在(或者更糟,路径存在,但没有相同的内容)…

解决方案: 删除applicationhost。配置文件在。vs文件夹。 或者干脆删除。vs文件夹。 Visual Studio将重新创建它。

我的应用程序是一个ASP.Net3.5应用程序(使用框架的版本2)。当创建ASP.Net3.5应用程序时,Visual Studio自动将scriptResourceHandler添加到web.config中。后来版本的。net把它放到了machine.config中。如果你运行ASP。Net 3.5应用程序使用版本4的应用程序池(取决于安装顺序,这是默认的应用程序池),你会得到这个错误。

当我开始使用2.0版本的应用程序池时。错误消失了。然后我不得不处理在提供WCF .svc时的错误:

HTTP错误404.17 -未找到请求的内容似乎是脚本,不会被静态文件处理程序服务

经过一番调查,我似乎需要注册WCF处理程序。使用以下步骤:

打开Visual Studio命令提示符(以管理员身份) 导航至“C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation” 执行servicemodelreg -i命令