2016-07-31 64 views
0

我有一个Asp Net Core RC2网站,它从服务器本地目录(我们会说C:\temp)读取一些文件。尽管我可以在Visual Studio中正常运行,但在部署到C:\inetpub\myWebSite(在IIS 10.0中运行)时无法运行。从Asp Net Core RC2网站使用IIS访问本地目录

我都想尽研究权限方面从StackOverflow上和其他地方,我能找到,包括赋予的权限来我IIS APPPOOL\myAppPoolNameIUSRIIS_IUSRS(我可以看到这些用户拥有有效的读访问,无论是在高级权限编辑和共享) 。我已经尝试了网站内容根目录下的虚拟目录和物理目录。我尝试将匿名身份验证标识更改为IUSR和应用程序池标识。

尽我所能,我无法在Visual Studio中以调试模式(IIS Express和控制台应用程序版本按预期方式运行)从我目录中读取IIS应用程序网站的目录。请注意,该网站按照其他目标从IIS内运行。另请注意,没有明显的错误;一切似乎正常运行,但显然数据未被读取。

我约90%确信它是一个权限问题或相关的IIS设置问题。对于IIS和Kestrel之间的隔离可能会有一些独特之处,我只是不知道这会影响我实现我想要的功能的能力。

任何有用的想法或建议将不胜感激。

+0

**更新:**我回来试图解决这个问题。我发现应用程序能够移动有问题的文件,所以它肯定有权读取它们。 我运行SQL Server Profiler,看起来问题是应用程序调用过程时,它甚至无法命中数据库,但我仍然没有收到任何错误。 – MapLion

回答

0

一旦我意识到它没有触及数据库,我认为这是一个IIS问题。我第一次尝试为SQL Server设置IIS APPPOOL\<AppPoolName>登录,但没有任何成功。然后我使用AppPool来运行Web应用程序所在的用户,该用户可以访问数据库并且可以工作。

的步骤如下:

  1. 打开IIS管理器
  2. 导航在左边Application Pools
  3. 用鼠标右键单击该应用程序池,你的应用程序运行,并选择Advanced Settings...
  4. Process Model>Identity点击它右侧的方框,会出现一个省略号(三个点);点击打开一个Application Pool Identity窗口
  5. 选择'Custom Account radio button and click Set ...`并输入您希望使用的用户名和密码,并使AppPool作为(可访问数据库)运行。

另外,请记住,如果您正在运行.NET核心应用程序来将您的AppPool设置为No Managed Code