Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net TFS 2017-发布定义中的aspnet_regiis.exe?_Asp.net_Batch File_Tfs - Fatal编程技术网

Asp.net TFS 2017-发布定义中的aspnet_regiis.exe?

Asp.net TFS 2017-发布定义中的aspnet_regiis.exe?,asp.net,batch-file,tfs,Asp.net,Batch File,Tfs,我有一个批处理脚本步骤,在我的web部署结束时运行。该脚本使用aspnet_regiis.exe对web.config中的连接字符串进行加密。在日志中,它看起来很正常,但它没有对连接字符串进行加密。当我在远程计算机上本地运行批处理时,它可以正常工作。是否有一种方法可以通过发布定义完成,或者用户每次都必须在本地运行批处理 这是代码 start C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectio

我有一个批处理脚本步骤,在我的web部署结束时运行。该脚本使用aspnet_regiis.exe对web.config中的连接字符串进行加密。在日志中,它看起来很正常,但它没有对连接字符串进行加密。当我在远程计算机上本地运行批处理时,它可以正常工作。是否有一种方法可以通过发布定义完成,或者用户每次都必须在本地运行批处理

这是代码

start C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2"
echo Encryption Successfull!
pause

首先,建议您将构建服务帐户RDP用于远程计算机,并运行批处理脚本。再次检查您是否缺少该帐户的任何权限

因为,日志看起来很正常,但实际上并没有加密connectionString。还可以尝试执行以下测试:

  • 您是否比较了部署到的转换后的web.config文件 是否将服务器设置为原始加密配置文件?在两个文件都打开的情况下进行测试 服务器
  • 尝试在服务器上取消对配置文件的加密,并查看是否获得 返回正确的连接字符串

您是否收到任何错误或提示信息?刚刚找到一个解决方案。这是权限错误,代理在网络服务下运行,网络服务没有权限。我将代理更改为在administrator下运行,它的工作方式虽然不理想,但可以正常工作。如何设置NetworkServices的管理员权限?如果我将NetworkServices权限更改为Administrator,则它仅适用于已部署的网页,这对我不好,每次部署新网站时,NetworkServices权限都会恢复为默认值。@WojtekT如果是,您是否必须以服务模式运行代理?您是否可以尝试使用一个配置为交互模式而不是服务的构建代理运行该版本。这可能会给帐户足够的权限,这可能会奏效。