小编hit*_*tch的帖子

使用TFS构建触发时,在Powershell中抑制sqlpackage.exe警告/错误

我有一个自动部署脚本,使用dacpac和sqlpackage.exe,SSRS报告和网站部署数据库更改.

当我在命令行执行脚本时,sqlpackage输出以下消息:

对象[objectname]已存在于具有不同定义的数据库中,不会被更改.

控制台上的输出为黄色,表示它是警告,部署继续并按预期完成.

但是,当我通过TFS构建触发相同的脚本时,Build Explorer中会记录相同的消息,但旁边会显示错误图标.部署仍在继续,自动化测试运行等,但构建状态更改为带有勾号并交叉的图标 - 表示构建已成功完成,但其他任务失败.

有一个参数可以提供给sqlpackage,UnmodifiableObjectWarnings,它应该可以抑制这种警告,但msdn上有一个帖子表明这个参数存在错误,但它不起作用.

我想知道在Powershell中我是如何陷阱并抑制这种警告的,因为我不希望我的构建/部署因为这个警告而失败.但是我无法抑制对sqlpackage的所有错误输出,因为可能存在其他完全有效的错误.

更新

我已尝试按照以下建议:https: //serverfault.com/questions/340711/redirect-stderr-to-variable-in-powershell 并尝试使用类似于以下代码:

  try {
        $test = & "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /SourceFile:"$dacpac" /Profile:"$dbProfile" /p:UnmodifiableObjectWarnings=True /Action:Publish 2>&1

        $errMsg = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
        $normMsg = $test | ?{$_.gettype().Name -ne "ErrorRecord"}
    }
    catch {
         Write-Host "Caught Exception $_"
    }
Run Code Online (Sandbox Code Playgroud)

但是,只要exe返回警告消息,我的调用函数就会抛出并处理异常 - 并且不会发生部署.

但是,如果我将其称为如下:

try {
    & "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /SourceFile:"$dacpac" /Profile:"$dbProfile" /p:UnmodifiableObjectWarnings=True /Action:Publish 2>&1
}
catch {
     Write-Host "Caught Exception $_"
}
Run Code Online (Sandbox Code Playgroud)

即没有变量$ test …

tfsbuild powershell-3.0 sql-server-data-tools

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

几乎没有客户端在互联网上保护WCF服务的最佳方法

我希望通过互联网向一系列客户提供服务.在这个阶段,api非常小,我只希望已知的客户端能够访问该服务.我现在不需要能够识别客户端,但是我预计随着api的增长,我将来需要能够识别客户端.

我想知道在短期内确保服务安全的最佳方法是什么,从长远来看,我可能希望能够授权客户端访问服务上的特定方法?

我在考虑使用传输安全性 - 即SSL.我是否还应该使用Message security来查看

clientCredentialType="certificate"
Run Code Online (Sandbox Code Playgroud)

在哪个clase每个客户端将拥有自己的证书,将使用该服务对其进行身份验证?

或者我应该只是为每个客户提供一个API密钥,它将提供类似的客户差异化水平?

欢迎任何其他建议.

请注意,这是服务接口的服务 - 即不是客户端应用程序.服务的用户数量将受到限制,我预计不需要在数据级别应用安全性,更多的是在方法访问级别.

c# security wcf web-services

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

WPF图像控制逐步加载多页tiff

我想知道是否有一个现有的控件,或者是否可以直接开发一个允许通过网络逐步加载多页tiff的控件?我正在处理一些长达数千页的tiff图像,一旦下载一页或多页图像就会开始显示,并且只根据需要检索图像的其他页面,或者按需下载或带宽可用时下载.我意识到TIFF图像具有某些结构要求和周围的元数据,但期望这应该是可能的.

c# tiff image progressive-download

4
推荐指数
1
解决办法
3108
查看次数