使用 IIS 从 Asp Net Core RC2 网站访问本地目录
Accessing a Local Directory from an Asp Net Core RC2 Website Using IIS
我有一个 Asp Net Core RC2 网站,它从服务器本地目录读取一些文件(我们会说 C:\temp
)。虽然我可以使它在 Visual Studio 中正常工作 运行,但在部署到 C:\inetpub\myWebSite
(IIS 10.0 中的 运行)时它将无法工作。
我已经尝试了 Whosebug 和我能找到的其他地方的所有研究权限方面,包括向我的 IIS APPPOOL\myAppPoolName
、IUSR
和 IIS_IUSRS
授予权限(我可以看到这些用户具有有效的读取权限,包括高级权限编辑和共享)。我已经在网站的内容根目录中尝试了虚拟目录和物理目录。我尝试将匿名身份验证身份更改为 IUSR
和应用程序池身份。
尽我所能,我无法像在 Visual Studio 中的调试模式下一样将目录作为 IIS 应用程序网站读出(IIS Express 和控制台应用程序版本都作为故意的)。请注意,该网站在 IIS 中按预期运行。另请注意,没有明显的错误;一切似乎都正常运行,但很明显数据未被读取。
我大约有 90% 的把握认为这是权限问题或相关的 IIS 设置问题。 IIS 和 Kestrel 之间的隔离可能有一些独特之处,我只是不知道这会影响我实现我想要的目标的能力。
如有任何有用的想法或建议,我们将不胜感激。
一旦我意识到它没有访问数据库,我认为这是一个 IIS 问题。我首先尝试为 SQL 服务器设置 IIS APPPOOL\<AppPoolName>
登录,但没有成功。然后我求助于 运行 将 Web 应用程序所在的 AppPool 设置为有权访问数据库的用户,这很有效。
步骤如下:
- 打开 IIS 管理器
- 在左侧导航到
Application Pools
- 右键单击您的应用程序所在的应用程序池 运行,然后 select
Advanced Settings...
- 在
Process Model
> Identity
下单击其右侧的框,将出现一个省略号(三个点);单击它打开 Application Pool Identity
window
- Select 'Custom Account
radio button and click
Set...` 并输入您希望使用的用户名和密码,并将 AppPool 运行 作为(可以访问数据库)。
顺便说一句,请记住,如果您要 运行 将 .NET Core 应用程序设置为 No Managed Code
。
我有一个 Asp Net Core RC2 网站,它从服务器本地目录读取一些文件(我们会说 C:\temp
)。虽然我可以使它在 Visual Studio 中正常工作 运行,但在部署到 C:\inetpub\myWebSite
(IIS 10.0 中的 运行)时它将无法工作。
我已经尝试了 Whosebug 和我能找到的其他地方的所有研究权限方面,包括向我的 IIS APPPOOL\myAppPoolName
、IUSR
和 IIS_IUSRS
授予权限(我可以看到这些用户具有有效的读取权限,包括高级权限编辑和共享)。我已经在网站的内容根目录中尝试了虚拟目录和物理目录。我尝试将匿名身份验证身份更改为 IUSR
和应用程序池身份。
尽我所能,我无法像在 Visual Studio 中的调试模式下一样将目录作为 IIS 应用程序网站读出(IIS Express 和控制台应用程序版本都作为故意的)。请注意,该网站在 IIS 中按预期运行。另请注意,没有明显的错误;一切似乎都正常运行,但很明显数据未被读取。
我大约有 90% 的把握认为这是权限问题或相关的 IIS 设置问题。 IIS 和 Kestrel 之间的隔离可能有一些独特之处,我只是不知道这会影响我实现我想要的目标的能力。
如有任何有用的想法或建议,我们将不胜感激。
一旦我意识到它没有访问数据库,我认为这是一个 IIS 问题。我首先尝试为 SQL 服务器设置 IIS APPPOOL\<AppPoolName>
登录,但没有成功。然后我求助于 运行 将 Web 应用程序所在的 AppPool 设置为有权访问数据库的用户,这很有效。
步骤如下:
- 打开 IIS 管理器
- 在左侧导航到
Application Pools
- 右键单击您的应用程序所在的应用程序池 运行,然后 select
Advanced Settings...
- 在
Process Model
>Identity
下单击其右侧的框,将出现一个省略号(三个点);单击它打开Application Pool Identity
window - Select 'Custom Account
radio button and click
Set...` 并输入您希望使用的用户名和密码,并将 AppPool 运行 作为(可以访问数据库)。
顺便说一句,请记住,如果您要 运行 将 .NET Core 应用程序设置为 No Managed Code
。