我在HostGator上有一个共享计划。我想在我的网站上创建Web API服务,但由于安全问题而崩溃:
地址:
http://example.com/api/welcome/Mitulat
代码:
// GET api/welcome/5
public string Get(string id)
{
return "Hello " + id + "!";
}
web.config文件:
<system.web>
<customErrors mode="Off"/>
<compilation targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
本地可行,但当我将其上传到服务器时,该页面显示:
描述:应用程序尝试执行安全策略不允许的操作。授予此应用程序 必要的权限请联系您的系统管理员或更改 应用程序在配置文件中的信任级别。
例外详细信息:
System.Security.SecurityException: Request failed.
支持人员说应用程序必须以中等信任级别发布,因此我将此行添加到<system.web>
文件的web.config
部分:
<trust level="Medium"/>
现在页面上写着:
说明:处理为此请求提供服务所需的配置文件时发生错误。请查看 以下具体错误详细信息并修改您的配置文件 适当。
分析程序错误消息:此配置部分不能在此路径中使用。当站点管理员锁定访问权限时会发生这种情况 使用
<location allowOverride="false">
来自本节 继承配置文件。
支持者说我不应该使用此功能。这可能是真的吗?我的意思是HostGator服务数百万个网页。我打赌他们中的一些使用Web API ... 我被卡住了。
答案 0 :(得分:1)
经过2天的研究,还有3次与“支持”的对话,以及基于此问题成功设法在Hostgator共享计划中执行Web API请求的神经故障。
Getting Error <location allowOverride="false"> while hosting WEB API 2 in Hostgator
没有这个,我不知道我会做什么......
简介:
即使没有Roslyn也可以进行部署,代码没有变化。打开NuGet Package Manager窗口并卸载Microsoft.CodeDom.Providers.DotNetCompilerPlatform包并重建&amp;重新发布。此卸载还会从web.config文件中删除CodeDom配置。这将解决您的目的。基本上这不会在bin文件夹中生成任何csc.exe,vbc.exe文件。