Mik*_*fer 6 asp.net roslyn asp.net-web-api
我们未能成功使用Windows服务部署OWIN Web API服务(如此StackOverflow问题中所述).经过多次尝试解决问题后,我们决定简单地创建一个ASP.NET Web API站点并通过IIS进行部署.
在本地运行时,可以访问所有操作.但是,如果我们发布网站(使用Build - > Publish或其任何变体),我们会观察到以下内容:
URL ACL已创建如下:
netsh http add urlacl http://+:8098/api user=Everyone
防火墙似乎没有阻塞端口(我们可以通过上面的步骤1来实现).URL ACL存在,公司中的每个人都可以访问它(他们应该这样做).我们不知道为什么会发生这种情况,似乎无法找到合适的答案.
有人可以建议我们可能忽略的原因或可能的解决方案吗?
UPDATE
从控制器中删除逻辑并重新发布后,Windows应用程序事件日志中出现以下(缩写)警告信息:
Event code: 3005  
Event message: An unhandled exception has occurred.  
Exception information: 
Exception type: HttpException 
Exception message: Could not find a part of the path 'D:\websites\LoggingWebApi\bin\roslyn\csc.exe'.    
这是有趣的.看起来Publish没有使用构建版本分发Roslyn编译器.
更新2 控制器上最简单的操作方法是:
[HttpGet]
[Route("Status")]
public string Status()
{
    return "Online";
}
即使手动将Roslyn程序集复制到bin文件夹中的服务器之后,该方法也会返回HTTP 503.应用程序事件日志中不会显示任何错误消息.
当这个方法在本地运行时(在我的机器上),它返回一个JSON字符串,我可以在文本编辑器中打开它.
小智 1
URL ACL 已创建如下:
netsh http 添加 urlacl http://+:8098/api user=Everyone
我遇到了类似的问题,最终删除了 Web 服务器上的 URL ACL 保留。这解决了它。尝试一下。
netsh http 删除 urlacl url= http://+:8098/api
| 归档时间: | 
 | 
| 查看次数: | 261 次 | 
| 最近记录: |