我希望使用.MDF Server数据库文件,在通过DevOps管道进行部署时,在Visual期间对该文件执行单元测试。
我将.MDF和.LDF文件添加到单元测试项目中,并且能够在本地执行。我已经确认,使用列出文件夹内容的PowerShell脚本将文件正确部署到管道中。我还确认了案件敏感性,确保一切都是大案要案。
当向现有的工作管道添加Visual步骤时,当尝试在测试初始化期间保存到数据库时,我最初收到了此错误:
"D:\A\1\S\APPCORETESTS\BIN\RELEASE\NETCOREAPP3.1\MYTESTDATABASE.MDF“:更新数据库Microsoft.Data.SqlClient.SqlException失败,因为数据库是只读的
我在测试初始化期间添加了以下调用:
ALTER DATABASE [MYTESTDATABASE.MDF] SET READ_WRITE现在,我得到了以下错误:
无法打开物理文件"D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\MYTESTDATABASE.mdf".的
操作系统错误5:“5(访问被拒绝)
无法打开物理文件"D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\myTestDatabase_log.ldf".操作系统错误5:“5(访问被拒绝。)”。
我能够使用以下连接字符串打开到.MDF文件的连接(来自一个配置,因此两个反斜杠"\"):
"Server=(LocalDB)\\MSSQLLocalDB;AttachDbFileName='|DataDirectory|\\MYTESTDATABASE.MDF'"并且我能够运行一个查询,返回多个数据库,包括我的数据库(以及tempdb、master等):
select name from sys.databases如果此错误发生在本地,我将为.MDF / .LDF所在的文件夹设置文件夹权限,但不知道这在DevOps管道中是否可行,或者是否是解决此问题的正确方法。
发布于 2020-11-10 06:03:17
您使用的是哪个代理,托管代理还是自托管代理?
Azure DevOps管道通过服务帐户访问文件,我们应该检查服务帐户的权限并确保它有足够的权限。
如果您使用的是托管代理,它通过这个帐户test Build Service(Org name)访问文件,我们需要打开项目设置->存储库->选择回购和检查服务帐户test Build Service ({Org name})权限,还需要检查管道->设置。
如果使用自托管代理并访问本地文件,则应检查文件权限.步骤:选择本地->Properties->Security,服务帐户名应该是Administrators(代理服务名称\Administrators)或用户(代理服务名称\用户)。
顺便说一下,我们可以将代理服务帐户更改为您的所有者帐户。
步骤:在代理机器上打开服务并搜索代理服务帐户,检查下面的图片,只需将帐户名和密码更改为您的帐户,然后它将使用此帐户执行操作。

https://stackoverflow.com/questions/64755765
复制相似问题