所以我有一个在特定URL(www.someurl.com)上运行的C#/ ASP.NET 4.5 Web应用程序。此应用程序在本地工作,使用Visual Studio的“发布Web应用程序”功能部署到测试和生产服务器(Windows 2012 R2和IIS 8.5)。一切都很好,花花公子。在生产服务器上,应用SSL,以便应用程序在HTTPS上运行。
现在,Web应用程序中添加了一个新的Web服务,并将其放置在所述Web应用程序的(子)文件夹中,就像已经运行的其他Web服务一样。通常我会使用OAUTH(2)或类似方法来保护Web服务。但是,由于编程方面的限制,使用Web服务的客户端要求进行基本身份验证以确保安全性。
我不能为我的生活似乎弄清楚如何让这个运行。我在服务器上创建了一个新用户帐户,在IIS中启用了基本身份验证,在Web服务所在的文件夹中使用了“转换为应用程序”,当我访问www.someurl.com/folder/to/some/webservice.asmx时它确实要求我的凭据。但是,ASMX文件(自Web应用程序发布到此服务器以来的标记文件)将被视为非功能性标记文件并返回服务器错误(The page must have a <%@ webservice class="MyNamespace.MyClass" ... %> directive.
)
我做错了什么?
答案 0 :(得分:0)
对于遇到同一问题的任何人:我在主Web.Config文件中使用<location>
标记得到了我想要的内容,忽略了在文件夹级别转换为IIS中的应用程序:
<location path="folder/to/some/webservice">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>