从Asp Net Core RC2网站使用IIS访问本地目录
我有一个Asp Net Core RC2网站,它从服务器本地目录(我们会说C:\temp
)读取一些文件。尽管我可以在Visual Studio中正常运行,但在部署到C:\inetpub\myWebSite
(在IIS 10.0中运行)时无法运行。从Asp Net Core RC2网站使用IIS访问本地目录
我都想尽研究权限方面从StackOverflow上和其他地方,我能找到,包括赋予的权限来我IIS APPPOOL\myAppPoolName
,IUSR
和IIS_IUSRS
(我可以看到这些用户拥有有效的读访问,无论是在高级权限编辑和共享) 。我已经尝试了网站内容根目录下的虚拟目录和物理目录。我尝试将匿名身份验证标识更改为IUSR
和应用程序池标识。
尽我所能,我无法在Visual Studio中以调试模式(IIS Express和控制台应用程序版本按预期方式运行)从我目录中读取IIS应用程序网站的目录。请注意,该网站按照其他目标从IIS内运行。另请注意,没有明显的错误;一切似乎正常运行,但显然数据未被读取。
我约90%确信它是一个权限问题或相关的IIS设置问题。对于IIS和Kestrel之间的隔离可能会有一些独特之处,我只是不知道这会影响我实现我想要的功能的能力。
任何有用的想法或建议将不胜感激。
一旦我意识到它没有触及数据库,我认为这是一个IIS问题。我第一次尝试为SQL Server设置IIS APPPOOL\<AppPoolName>
登录,但没有任何成功。然后我使用AppPool来运行Web应用程序所在的用户,该用户可以访问数据库并且可以工作。
的步骤如下:
- 打开IIS管理器
- 导航在左边
Application Pools
- 用鼠标右键单击该应用程序池,你的应用程序运行,并选择
Advanced Settings...
- 在
Process Model
>Identity
点击它右侧的方框,会出现一个省略号(三个点);点击打开一个Application Pool Identity
窗口 - 选择'Custom Account
radio button and click
Set ...`并输入您希望使用的用户名和密码,并使AppPool作为(可访问数据库)运行。
另外,请记住,如果您正在运行.NET核心应用程序来将您的AppPool设置为No Managed Code
。
**更新:**我回来试图解决这个问题。我发现应用程序能够移动有问题的文件,所以它肯定有权读取它们。 我运行SQL Server Profiler,看起来问题是应用程序调用过程时,它甚至无法命中数据库,但我仍然没有收到任何错误。 – MapLion