我已经创建了一个MVC的Web API,用于一些大学课程,我的开发机器上如预期(运行VS11)的作品。
然而,当我在应用程序部署到Web服务器123reg比其他HttpVerbs GET和POST似乎没有达到我的应用程序在所有的,最初是401不返回授权响应; 但关闭的建议“的WebDAV”模块后, 在这里这些401S成了不允许405方法。 在这种情况下,我只禁用处理程序作为禁用这两个处理程序和模块意味着我的应用程序根本不启动(错误500没有一个堆栈跟踪[自定义错误是关闭])。
我打算利用形式的成员提供身份验证功能添加到我的API,但是我删除任何[Authorise]
从我的代码属性时401S开始出现。
在123Reg的共享主机应用在中等程度的信任运行。
我一直在与123Reg支持接触,他们已经半有益的,但此后决定,他们不能帮我(他们建议增加HttpHandlers的详见下文)(显然,我应该咨询网页设计师...)
事情我已经尝试:
我已经添加[AllowAnonymous]
属性我控制器和/或没有影响的行动。
我已经加入了authorization
的web.config属性允许所有动词和路径身份验证和不是所有的用户:
<authorization>
<allow users="*" />
<allow users="?" />
<allow verbs="*" users="*" />
<allow verbs="*" users="?" />
</authorization>
我已经加入(如123Reg建议):
<system.webServer>
<handlers>
<remove name="WebDAV" />
<add name="PUTVerbHandler" path="*" verb="PUT" modules="ProtocolSupportModule" resourceType="Unspecified" />
<add name="DELETEVerbHandler" path="*" verb="DELETE" modules="ProtocolSupportModule" resourceType="Unspecified" />
</handlers>
</system.webServer>
这显然是一个进步,因为我们现在收到而不是401阶跃响应405级的响应,但是我现在无法作出任何进一步的进展。 此外,我还增加了:
<httpHandlers>
<add verb="*" path="*" type="System.Web.Mvc.MvcHttpHandler"/>
</httpHandlers>
这也没有什么区别。
任何帮助您能给将不胜感激(我真的不希望有移动主机此应用程序!)