我有一个Asp Net Core RC2网站,该网站从服务器本地目录中读取一些文件(我们将说C:\temp
)。尽管可以从Visual Studio正常运行,但将其部署到C:\inetpub\myWebSite
IIS(在IIS 10.0中运行)时将无法正常工作。
我试图从StackOverflow的每一个研究权限方面和其他地方,我能找到,包括赋予权限,以我的IIS APPPOOL\myAppPoolName
,IUSR
和IIS_IUSRS
(我可以看到这些用户拥有有效的读访问,无论是在高级权限编辑和共享)。我在网站的内容根目录中尝试了虚拟目录和物理目录。我曾尝试将匿名身份验证身份同时更改为IUSR
和应用程序池身份。
尽我所能,我无法像在Visual Studio中的Debug模式下一样,将它作为IIS Application网站从目录中读出(IIS Express和Console Application版本均按预期运行)。请注意,该网站可以在IIS内正常运行。还请注意,没有明显的错误;一切似乎都正常运行,但是很显然,没有读取数据。
我大约90%的人相信这是权限问题或相关的IIS安装问题。IIS和Kestrel之间的隔离可能存在一些独特之处,我只是没有意识到这会影响我实现自己想要的功能。
任何有益的想法或建议,将不胜感激。
一旦意识到它并没有影响数据库,我就认为这是一个IIS问题。我首先尝试IIS APPPOOL\<AppPoolName>
为SQL Server设置登录名,但没有成功。然后,我诉诸于在有权访问数据库的用户下运行Web应用程序所在的AppPool,并且该方法有效。
步骤如下:
Application Pools
Advanced Settings...
Process Model
>下,Identity
单击其右侧的框,然后会出现一个省略号(三个点);点击打开一个Application Pool Identity
窗口radio button and click
设置...”,然后键入您要使用的用户名和密码,并以运行AppPool的身份(可以访问数据库)。顺便说一句,请记住是否正在运行.NET Core应用程序以将AppPool设置为No Managed Code
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句