【发布时间】:2017-01-27 08:45:04
【问题描述】:
我目前正在使用 C# 和 Asp.Net MVC 编写一个 Web 应用程序。在我的本地开发机器上一切正常。
当我把它放在服务器上时,样式等绝对没问题。但是,POST 方法都不起作用。
IIS 不断向我抛出以下错误:
HTTP 错误 500.24 - 内部服务器错误检测到 Asp.NET 设置不适用于集成托管管道模式
按照建议,我更改为经典模式并尝试了
<validation validateIntegratedModeConfiguration="false"/>
在web.config 文件中没有任何运气。
我有很多使用代码的视图
@using(Html.BeginForm("Create", "User")){ //form data here }
...
现在,当我在默认网站下发布网站时,url 变为 https://abc.domain.com/mywebsite,这是所有 POST 方法停止工作的地方。但是,如果我将网站作为它自己的应用程序发布,而不是在默认网站下,那么一切都很好。
现在我可以看到找不到 POST 方法的原因是因为它不再是根目录了。
所以我的问题是,有没有更简单的方法来解决这个问题?因为我目前决定走@Url.Action("MyAction", "SomeController") 的路线并通过jQuery 提交表格,这似乎解决了这个问题。但是,是否有可以应用于整个应用程序的设置或某种设置,而不是继续为每个点击事件提供@Url.Action("MyAction", "SomeController")。
编辑:下面是我收到的错误消息的屏幕截图
【问题讨论】:
-
您可以从生成的错误页面发布屏幕截图或粘贴文本吗?注意“最可能的原因”部分,错误源可能会隐式或显式地给出。
-
这可能是个小问题——但您确定应用程序池使用的是同一管道吗?经典/集成。并且您使用的是相同的 .NET CLR 版本?
-
@TetsuyaYamamoto 请看附图
-
@smoksnes 是的,我已经比较过它们并且它们是相同的
-
我看到您在生产环境中遇到了模拟问题,打开 IIS 管理器 => 选择您的服务器 => 打开 'IIS 身份验证' => 如果启用了 ASP.NET 模拟,则禁用它(类似于 stackoverflow.com/questions/14445252/… )。
标签: c# asp.net asp.net-mvc iis iis-8