【问题标题】:Facing issues with POST Actions on live server面对实时服务器上的 POST 操作问题
【发布时间】: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


【解决方案1】:

在 IIS 中,比较现有默认网站的应用程序池的 .Net CLR 版本和您的网站正常运行的新应用程序。如果有差异,将默认网站的应用程序池设置更改为新应用程序的设置。

【讨论】:

  • 谢谢你,我已经比较了它们,它们是一样的
猜你喜欢
  • 1970-01-01
  • 2013-12-01
  • 2019-08-20
  • 2014-06-08
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
相关资源
最近更新 更多