我可以在单个应用服务中运行我的java API作为/ api下的虚拟应用程序和我的前端角度SPA下的/?
在我的应用程序设置中:
在我部署了两个虚拟应用程序之后,当我转到应用程序服务URL时,我正确地获得了前端,但是还有一个对API的调用,它会在几分钟内保持挂起状态,然后以500错误结束。 如果我尝试直接访问API,我会得到相同的500错误。
API是用Spring构建的,它是我设置的web.config文件:
<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/api"/>
<add initializationPage="/api/health"/>
<add initializationPage="/api/info"/>
</applicationInitialization>
我希望API和SPA都位于同一个域中。目前,API可以从任何域访问,对其没有任何限制。
我做错了什么?我怎样才能使它发挥作用?
答案 0 :(得分:0)
根据我的经验,在将Web项目部署到Azure App Service时,无需创建virtual directory
。
在门户网站上设置application settings
后,
您可以将项目生成war package
放在D:\home\site\wwwroot\webapps
的{{1}}目录下,然后重新启动您的应用。
请注意,如果您将war包的名称设置为KUDU
,则可以通过ROOT.war
直接访问您的应用,例如domain name
而不添加您的战争您的请求网址中的包名称。
您还可以直接通过路径访问静态文件,例如http://jaygong.azurewebsites.net/
。
更新回答
根据我的经验,您可以使用两种方法在Spring启动应用服务中调用另一个应用服务API。
1.春季启动的首页调用后台方法,通过http://jaygong.azurewebsites.net/image/image.jpg
请求在另一个应用服务API和自身之间传输消息,并将结果返回到前端。 HTTP
问题不存在。
2. spring boot的首页直接调用另一个app service API。 你可以在这个帖子Enable CORS AngularJS to send HTTP POST request
中引用下面的jsCORS
希望它对你有所帮助。