c# - 在 IIS 8.5 中的 asp.net mvc 5 上使用后期操作时出现错误 404

标签 c# asp.net asp.net-mvc iis

我对具有 POST 属性的操作有疑问。 当我使用 IIS Express Server 时,一切正常,但是当我使用本地 IIS 时,仅 GET 操作工作正常,当我的 Web 应用程序中调用 post 操作时,会出现以下错误:

HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

例如 CallController 中的此操作:

[HttpPost]
    public PartialViewResult Connecting(FarakhanModels fara)
    {
        try
        {
            fara.IP = fara.IP.Trim();
            IPAddress IP = IPAddress.Parse(fara.IP);

            socket = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream,
            ProtocolType.Tcp);

            socket.Connect(IP, fara.Port);

            fara.IsConnected = true;
        }
        catch (Exception ex)
        {
            fara.ErrorMessage = ex.Message;
            fara.IsConnected = false;
        }

        return (PartialView(viewName: "_Partial_Connect", model: fara));
    }

有了这个 View :

<h4>Call group</h4>
<hr />
<div id="connect">
    <div id="loading">
        <img src="~/Images/ajax-loader.gif" title="loading" />
        Loading... Please Wati !
</div>

<br />

<div class="col-md-9 col-sm-9">
    <span class="col-md-3">Connect to server:</span>
    <input type="search" id="ip" />
</div>

<br />
<br />

<div class="col-md-9 col-sm-10">
    <span class="col-md-3 col-sm-3">Port:</span>
    <input type="search" id="port" />
</div>

<br />
<br />
<br />

<div class="col-md-2 col-md-offset-3">
    <button type="button" class="btn-primary" id="btnConnect">Connect</button>
    @*<input type="button" id="btnConnect" name="btnConnect" value="Connect" style="width:120px" />*@
</div>
<div class="col-md-12" id="message">

</div>


<br />
<br />

@section Scripts {
<script>
    $(document).ready(function () {
        $("div#loading").hide();
        $("div#call").hide();

        $("button#btnConnect").click(function () {
            $("div#message").html("");

            $("div#loading").show();
            $("button#btnConnect").hide();

            var varIp = $("input#ip").val();
            var varPort = $("input#port").val();

            var varData =
                {
                    ip: varIp,
                    port: varPort,
                };

            $.ajax({
                type: "POST",
                dataType: "html",
                data: varData,
                url: "/Call/Connecting",
                error: function (response) {
                    $("div#message").html(response.error.toString());
                },

                success: function (response) {
                    $("input#ip").val("");
                    $("input#port").val("");

                    $("div#call").show();
                    $("div#connect").hide();
                    $("div#partialView").html(response);
                },

                complete: function (response) {
                    $("div#loading").hide();
                    $("button#btnConnect").show();
                }

            })
        })
    })
</script>

    }

当我点击“连接”按钮时,Ajax 找不到 Url:/Call/Connecting

最佳答案

我怀疑是 ajax 调用中使用的 url:

url: "/Call/Connecting" 

它是从根路径开始的。如果您在“/Call”不是根目录的环境中部署应用程序,则会收到 404 错误。例如,如果您将应用程序部署在 http://example.com/my_cool_app 。那么 url 应改为“/my_cool_app/Call/Connecting”。我建议使用 Url.Action 帮助程序动态构建操作端点,而不是对其进行硬编码。

关于c# - 在 IIS 8.5 中的 asp.net mvc 5 上使用后期操作时出现错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941104/

相关文章:

c# - 我可以在 Controller 的构造函数中访问 User.Identity.Name 吗?如果不是,最佳实践是什么?

c# - Dotnet core无法区分具有相同名称但不同参数的操作?

c# - 如何从构建过程中删除 App_LocalResources

asp.net - 如何提取 Outlook 显示的相同员工 ID 属性值?

asp.net - 是否有由 IIS 或 ASP.NET 创建的包含请求 URL 的 ETW 事件?

c# - ASP.NET MVC 4 - 无法对空引用执行运行时绑定(bind)

asp.net-mvc - 如何处理 ASP.NET MVC Controller 工厂中的异常

java - 警告 Xamarin android - 未提供 -tsa 或 -tsacert 并且此 jar 没有时间戳

c# - 在 IE 中打印 div 的内容

c# - 在 C# 中使用 'out' 关键字返回多个值