小编And*_*rch的帖子

C#SMO备份远程数据库到本地机器

我有一个应用程序执行SQL数据库的备份和恢复,这在本地计算机上工作正常,但是如果我对另一台机器上托管的SQL服务器运行此操作,我会收到以下错误

Microsoft.SqlServer.Management.Smo.FailedOperationException:服务器'25 .98.30.79'的备份失败.---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行Transact-SQL语句或批处理时发生异常.---> System.Data.SqlClient.SqlException:无法打开备份设备'C:\ Program Files\State Manager\Archive\Capture\20100217152147*product*\databases*database**database*.bak'.操作系统错误3(系统找不到指定的路径.).

这似乎是由SQL服务器尝试将此文件写入其本地驱动器引起的.由于安全限制,我无法设置可以放置备份的共享区域.

有谁知道如何将这些数据移回到调用代码的机器上?

我的代码如下.

    private string Name;
    private string Server;
    private string dbName;
    private string user;
    private string password;

    public Boolean performCapture(String archiveDir)
    {
        String destination = archiveDir + "\\" + Name;
        if (!System.IO.Directory.Exists(destination))
        {
            System.IO.Directory.CreateDirectory(destination);
        }

        Server sqlServer = connect();
        if (sqlServer != null)
        {
            DatabaseCollection dbc = sqlServer.Databases;
            if (dbc.Contains(dbName))
            {
                Backup bkpDatabase = new Backup();
                bkpDatabase.Action = BackupActionType.Database;
                bkpDatabase.Database = dbName;
                BackupDeviceItem bkpDevice = new BackupDeviceItem(destination + "\\" + dbName …
Run Code Online (Sandbox Code Playgroud)

c# sql smo

11
推荐指数
1
解决办法
9816
查看次数

使用本机库进行Surefire JUnit测试

我们在Hudson中使用Maven来运行我们的Java构建过程和Surefire插件来执行JUnit测试但是我遇到了一个需要本机dll的项目的单元测试问题.

我们看到的错误是:

测试错误:TestFormRegistrationServiceConnection(com.#productidentifierremoved#.test.RegistrationServiceTest):java.library.path中没有Authenticator

Authenticator是我们需要的DLL的名称.我发现这个SO帖子表明设置它的唯一方法是通过argLine.我们将配置修改为:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.10</version>
        <configuration>
            <forkMode>once</forkMode>
            <argLine>-Djava.library.path=${basedir}\src\main\native\Authenticator\Release</argLine>
        </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

但是,如果我们包含System.out.println(System.getProperty("java.library.path")),这仍会产生相同的错误; 我们可以看到这没有添加到路径中.

我们如何解决这个问题?

maven maven-surefire-plugin

9
推荐指数
1
解决办法
8390
查看次数

推荐的构建插件将工件部署到存储库

我们有一个在Windows slave上运行的Jenkins Maven构建,它在每次提交时运行maven包.我正在尝试使用提升的构建插件将提升的构建部署到nexus发布存储库.

我将"促销构建时......"设置为手动批准,并将"将工件部署到Maven存储库"的操作将存储库URL设置为" http://example.com:8081/nexus/content/repositories/releases / "和repo id为"release".但是,当批准被触发时,我们得到以下堆栈跟踪:

[INFO]部署在http://example.com:8081/nexus/content/repositories/releases/(id = release,uniqueVersion = true)部署主要工件artifactid-1.0.2.pom上传:http://示例.com:8081/nexus/content/repositories/releases/groupid/artifactid/1.0.2/artifactid-1.0.2.pom 错误:无法部署工件:无法传输工件groupid:artifactid:pom:1.0.2 from /发布(http://example.com:8081/nexus/content/repositories/releases/):无法传输文件:http://example.com:8081 /nexus/content/deposits/relaxs/groupid/artifactid/1.0.2/artifactid-1.0.2.pom.返回码为:401,ReasonPhrase:未经授权.org.apache.maven.artifact.deployer.ArtifactDeploymentException:无法部署工件:无法传输工件groupid:artifactid:pom:1.0.2 from/to release(http://example.com:8081/nexus/content/repositories/releases /):无法传输文件:http://example.com:8081 /nexus/content / deposits / release / groupid / artifactid/1.0.2 /artifactid-1.0.2.pom.返回码为:401,ReasonPhrase:未经授权.at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143)at hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:193)at hudson.maven.RedeployPublisher.perform(RedeployPublisher.java) :176)at hudson.plugins.promoted_builds.Promotion $ RunnerImpl.build(Promotion.java:282)at hudson.plugins.promoted_builds.Promotion $ RunnerImpl.doRun(Promotion.java:224)at hudson.model.AbstractBuild $ AbstractBuildExecution.在hudson.model.Run.run(Run.java:1678)的hudson.model.Run.exe执行(Run.java:1740)运行(AbstractBuild.java:533)hudson.plugins.promoted_builds.Promotion.run(推广) .java:174)at hudson.model.ResourceController.execute(ResourceController.java:89)at hudson.model.Executor.run(Executor.java:240)

如果我更改促销操作以触发maven部署,则重新运行构建并且部署目标按预期工作,如果我添加git发布者,这也会在身份验证时失败.如果由运行Jenkins的用户在本地执行,则两个操作都会成功.

升级的构建插件如何确定部署的身份验证详细信息?

maven jenkins jenkins-plugins promoted-builds

5
推荐指数
1
解决办法
924
查看次数