我们在Windows 2008R2服务器上安装了Atlassian Stash,而且大多数情况下一切都运行良好.我们有一个由我们的本地内部部署CA颁发的SSL证书和一个DNS条目设置,所以我们可以去https://stash/
,它工作得非常好,除了在Firefox中它会发出警告(相关?).
当使用Atlassian的Sourcetree时,我们可以导航并选择一个存储库,但是当我们尝试克隆它时,我们会收到以下错误:
致命:无法访问
https://user@url/scm/etc/etc.git
:SSL证书问题:无法获得本地颁发者证书
如果我尝试从git bash尝试,我也会得到同样的错误.根据这个错误,我已经尝试按照将他们的网站上的SSL证书添加到Git 的说明,包括评论中的内容,但无济于事.我已经通过Firefox和MMC证书管理单元导出了证书,获得了相同的结果并将其放在自己的文件中,与curl文件结合使用,无论是什么不断出现此错误.我还没有尝试使用SSH密钥,因为我希望能让我的团队更容易.
我也尝试过使用ssh myserver并接受连接,然后输入密码重新启动; 仍然是同样的错误.
我也不想简单地忽略证书验证,因为那似乎有点无意义.
如何使用我们的CA颁发的证书?
git bitbucket ssl-certificate bitbucket-server atlassian-sourcetree
我正在尝试设置一个单元测试初始化器(在Moq中),其中一个接口方法被模拟:
public interface IRepository
{
Task<IEnumerable<myCustomObject>> GetSomethingAsync(string someStringParam);
}
...
[TestInitialize]
public void Initialize()
{
var repoMock = new Mock<IRepository>();
var objectsList = new List<myCustomObject>() {
new myCustomObject("Something"),
new myCustomObject("Otherthing")
}
repoMock.Setup<Task<IEnumerable<myCustomObject>>>(
rep => rep.GetSomethingAsync("ThisParam")
).Returns(Task.FromResult(objectsList)); //error here
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我无法弄清楚如何让方法返回我的方法objectsList
.在实践中,这当然可以正常工作,因为List实现了IEnumerable,但是当它包含在Moq中的Task中时它似乎不起作用.我得到的错误是在Returns()
方法上:
Argument 1: cannot convert from 'System.Threading.Tasks.Task<
System.Collections.Generic.List<myCustomObject>>'
to 'System.Threading.Tasks.Task<
System.Collections.Generic.IEnumerable<myCustomObject>>'
Run Code Online (Sandbox Code Playgroud)
作为一种解决方法,我可以创建另一个简单地创建List<myObj>
并返回它的方法IEnumerable<myObj>
,但我觉得必须有另一种方法来处理这个更干净的方法.
那么,如何在不创建辅助方法的情况下完成此操作?
我花了一些时间试图理解多处理,虽然它的细节避开了我未经训练的头脑.我已经能够得到一个池来返回一个简单的整数,但如果该函数不仅仅返回一个结果,就像我可以找到的所有例子一样(即使在文档中,这是一个不起眼的例子,我也不太明白.
这是一个我正在努力工作的例子.但是,我不能按预期工作,我确信这有一个简单的原因.我可能需要使用队列或共享内存或管理器,但是当我阅读文档时,我似乎无法将我的大脑包围在它实际意味着什么以及它做什么.到目前为止,我所能了解的是泳池功能.
另外,我正在使用一个类,因为我需要避免使用全局变量,就像在这个问题的答案中一样.
import random
class thisClass:
def __init__(self):
self.i = 0
def countSixes(myClassObject):
newNum = random.randrange(0,10)
#print(newNum) #this proves the function is being run if enabled
if newNum == 6:
myClassObject.i += 1
if __name__ == '__main__':
import multiprocessing
pool = multiprocessing.Pool(1) #use one core for now
counter = thisClass()
myList = []
[myList.append(x) for x in range(1000)]
#it must be (args,) instead of just i, apparently
async_results = [pool.apply_async(countSixes, (counter,)) for i in myList] …
Run Code Online (Sandbox Code Playgroud) 我无法使用 Powershell将 Word 2010 (14.0.x) 文档保存为另存为或关闭。从网上的所有 tuts 看来,它应该可以与 2.0 一起使用,但我不再拥有它了。
简单案例:
$Path = "C:\MyDoc.docx"
$Word = New-Object -comobject Word.Application
$Word.Visible = $True #Do this to close it out without task manager
$Doc = $Word.Documents.Open($Path)
$Doc.SaveAs($Path)
$Doc.Close()
Run Code Online (Sandbox Code Playgroud)
此时一切正常,直到保存和关闭:
Argument: '1' should be a System.Management.Automation.PSReference. Use [ref].
At line:5 char:1
+ $Doc.SaveAs($Path)
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : NonRefArgumentToRefParameterMsg
Argument types do not match
At line:6 char:1
+ $Doc.Close()
+ ~~~~~~~~~~~~
+ …
Run Code Online (Sandbox Code Playgroud) 我已经为gData和Drive C#API两个单独的Oauth2实现,分别在OAuth2Parameters和AuthorizationState中存储令牌信息.我能够刷新令牌并将它们用于必要的API调用.我正在寻找一种方法来使用它来获取用户的信息,主要是电子邮件地址或域.
我尝试了演示了以下检索OAuth 2.0凭证,但我发现类似rapsalands'的问题编译错误在这里,说它
can't convert from
'Google.Apis.Authentication.OAuth2.OAuth2Authenticator<
Google.Apis.Authenticatio??n.OAuth2.DotNetOpenAuth.NativeApplicationClient>'
to 'Google.Apis.Services.BaseClientService.Initializer'.
Run Code Online (Sandbox Code Playgroud)
我刚刚抓住了最新版本的Oauth2 api dll,所以我不认为就是这样.
我正在使用UserInfo API提到的所有其他代码 示例,但我找不到任何类型的C#/ dotnet api,我可以使用它而不需要直接执行GET/POST请求.
有没有办法使用我已经拥有的一个C#apis的令牌获取此信息而不会发出新的HTTP请求?
我正在编写与Google Apps API接口并需要Oauth2身份验证的Cmdlet.如果用户尝试在未经过身份验证的情况下运行Cmdlet,并且不仅仅是刷新令牌,我还需要他们输入从浏览器提供的访问代码.(这一切都得到了解决.)我想在必要时暂停cmdlet,等待他们的输入,然后只有经过验证才能继续.
但是,我现在只能通过抛出一个错误来退出当前的Cmdlet,然后指示用户将访问代码作为参数传递给另一个Cmdlet(clunky).
我一直在寻找一种方法来调用类似C#的Console.Readline(这只是在执行cmdlet时跳过)或尝试调用Read-Host cmdlet ; 一旦我从用户那里获得访问代码,代码就可以继续正常执行.我知道它不一定是'Powershell Way',但是为了这些工具,我觉得它是用户的最佳选择.
如果我尝试这种方法:
ReadHostCommand read = new ReadHostCommand();
read.prompt = "Access Code";
foreach (string s in read.Invoke<string>()) {
WriteObject(s);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:无法直接调用从PSCmdlet派生的Cmdlet.
搜索该错误导致我尝试创建一个新的 Host对象,如下所示我得到另一个错误(也是如下):
PowerShell ps = PowerShell.Create();
ps.AddCommand("Read-Host");
foreach (PSObject result in ps.Invoke()) {
WriteObject(result);
}
Run Code Online (Sandbox Code Playgroud)
Read-Host:由于主机程序或命令类型不支持用户交互而提示用户失败的命令.尝试支持用户交互的主机程序(如Windows PowerShell控制台或Windows PowerShell ISE),并从不支持用户交互的命令类型(如Windows PowerShell工作流)中删除与提示相关的命令.
有没有办法暂停cmdlet从用户获取字符串?
编辑:为了澄清,我正在编写Cmdlet以在Powershell控制台或ISE或类似程序中运行,并且需要从用户mid-cmdlet执行中获取输入.
c# ×3
powershell ×2
.net ×1
bitbucket ×1
cmdlet ×1
comobject ×1
gdata ×1
git ×1
input ×1
moq ×1
pool ×1
python ×1
python-2.7 ×1
python-3.x ×1
unit-testing ×1