C# 在azure上部署后Web API崩溃

C# 在azure上部署后Web API崩溃,c#,azure,asp.net-web-api,azure-web-app-service,C#,Azure,Asp.net Web Api,Azure Web App Service,我是Azure新手,我使用Azure免费版作为基准 我开发了一个webapi服务,它使用Blob和DocumentDb作为DAL,webapi在我的本地机器上运行得非常好 在我的azure帐户中,我打开应用程序服务,并在azure上部署webapi(使用发布) 当我尝试使用azure提供的url浏览我的网站时,我收到以下崩溃错误: **试图以访问权限127.0.0.1:8081禁止的方式访问套接字 异常详细信息:System.Net.Sockets.SocketException:尝试失败 以其

我是Azure新手,我使用Azure免费版作为基准

我开发了一个webapi服务,它使用Blob和DocumentDb作为DAL,webapi在我的本地机器上运行得非常好

在我的azure帐户中,我打开应用程序服务,并在azure上部署webapi(使用发布)

当我尝试使用azure提供的url浏览我的网站时,我收到以下崩溃错误:

**试图以访问权限127.0.0.1:8081禁止的方式访问套接字

异常详细信息:System.Net.Sockets.SocketException:尝试失败 以其访问权限所禁止的方式访问套接字 127.0.0.1:8081**

我检查了我的项目,我没有发现任何港口或地址的提及


请帮助我了解此问题的根源。

您使用的是asp.net还是asp.net核心。请确保在web.config或project.json中定义了8081,azure允许进程在自定义端口上侦听,因此会出现错误


异常中是否有调用堆栈?这将有助于识别试图转到8081的代码。应用程序服务平台执行环境与本地不同。所有Azure Web应用程序(以及移动应用程序/服务、Web作业和功能)都在称为沙箱的安全环境中运行。我们可以从Azure获得有关Azure Web App的更多信息。以下是该文档的片段

网络端点侦听

通过internet访问应用程序的唯一方法是通过已公开的HTTP(80)和HTTPS(443)TCP端口;应用程序可能无法在其他端口上侦听来自internet的数据包。 但是,应用程序可能会创建一个套接字,用于侦听沙箱中的连接。例如,同一应用程序中的两个进程可以通过TCP套接字相互通信;从沙箱外部传入的连接尝试(尽管它们在同一台机器上)将失败。有关更多详细信息,请参见下一主题

本地地址请求

尝试连接到本地地址(例如localhost,127.0.0.1)和计算机自己的IP将失败,除非同一沙箱中的另一个进程在目标端口上创建了侦听套接字

拒绝的连接尝试(如以下示例尝试从.NET连接到127.0.0.1:80)将导致以下异常:

异常详细信息:System.Net.Sockets.SocketException:试图以访问权限127.0.0.1:80禁止的方式访问套接字


如果有用,请将其标记为一个答案,以帮助更多有相同问题的社区。