gpt4 book ai didi

c# - PageMethod 404 仅在 XP/IIS 5.1 下部署的网站上。我应该注意哪些安全设置?

转载 作者:行者123 更新时间:2023-11-30 18:02:18 25 4
gpt4 key购买 nike

几天来一直在解决这个问题,基本上已经没有线索了。

代码如下:

[WebMethod]
public static bool EnableEditMode()
{
bool successful = false;

try
{
GlobalSettings globalSettings = StateManager.GetStates<GlobalSettings>();
globalSettings.EditModeEnabled = true;
StateManager.SaveGlobalSettings(globalSettings);
successful = true;
}
catch (Exception exception)
{
_logger.ErrorFormat("Unable to enable edit mode. Reason: {0}", exception.Message);
}

return successful;
}

function EnableEditMode() {
$.ajax({
type: "POST",
url: "Dashboard.aspx/EnableEditMode",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if( result ) {
$find(window.leftPaneID).expand(1);
$('#' + window.startEditButtonID).hide();
$('#' + window.finishEditButtonID).show();
}
}
});
}

这是错误信息:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost/csweb/Dashboard/Dashboard.aspx/EnableEditMode

这是我尝试过的:

  • 确保我使用 Windows 更新是最新的。 Source

  • 我从 ScriptManager 中删除了“EnablePageMethods = True”并开始使用 jquery ajax POST 来执行代码。当我这样做时没有任何问题, header 略有变化,但没有任何问题得到修复。

  • 我尝试使用 <%= ResolveUrl("~/Dashboard/Dashboard.aspx") %> ,但路径没有改变,我没有注意到效果,所以我删除了代码。 Source

  • 我进入我的 web.config 文件并根据 Source 删除了以下内容:

    <authorization>
    <deny users="?"/>
    </authorization>
  • 我已确保该文件不是只读文件,并授予系统上所有相关用户对该文件和父文件夹的完全控制权限。 (不是实时系统,所以不用担心……随便玩玩)。

  • 我区分了我的工作开发和非工作部署——我发现请求没有差异 header 。

  • 我在网站上运行了权限向导,表明我希望拥有一个公开查看的网站的网站安全设置,并应用于所有文件夹以替换当前的安全设置。没有影响。

  • 添加了 .json//application/json MIME 类型,没有效果,但我保留了它,因为它看起来很有用。

在这一点上,我正在适应 IIS 设置的深渊。不过,我对 IIS 5.1 不是很熟悉。所以,我想知道是否有任何我应该开始寻找的特定地点?

我找到了原因,但我正在研究如何解决它。我有一个集成到 MVC 解决方案中的 ASP.NET AJAX 应用程序。 MVC 方面的事情是选择 PageMethod 并且没有正确处理它,但仅在 IIS 5.1 下:

[HttpException]: The controller for path &#39;/csweb/Dashboard/Dashboard.aspx/EnableEditMode&#39; was not found or does not implement IController.

最佳答案

您使用的是 ASP.NET MVC 吗?您可能需要在 EnableEditMode() 上使用 [AcceptVerbs ("POST")]

此外,您能否尝试打印(或调试和查看)以下结果:

var pageURL = "<%= ResolveUrl("~/Dashboard/Dashboard.aspx") %>
var pageURL2 = "<%= ResolveUrl("~") %>

关于c# - PageMethod 404 仅在 XP/IIS 5.1 下部署的网站上。我应该注意哪些安全设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com