如何在HostGator Windows共享计划中使用Web API?

时间:2017-10-23 12:14:21

标签: .net windows asp.net-web-api shared-hosting

我在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 ... 我被卡住了。

1 个答案:

答案 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文件。