我正在使用Renci SSH.NET,但尝试在FTP(而不是SFTP站点)上进行测试.
我确实使用WinSCP - 但无法让它在Renci上工作 - WinSCP允许我将协议设置为FTP或SFTP - 我认为这是问题 - 我被提示
找不到合适的身份验证方法来完成身份验证(publickey,键盘交互).
如何在Renci SSH.NET上关闭SFTP(并且只使用FTP)?我试过了
Dim c As Renci.SshNet.SftpClient / ScpClient/ BaseClient / NetConfClient
Run Code Online (Sandbox Code Playgroud)
这是代码:
Private Sub LancerUpload()
Dim PWAuthMeth = New PasswordAuthenticationMethod(Login, Password)
Dim KIAuthMeth = New KeyboardInteractiveAuthenticationMethod(Login)
AddHandler KIAuthMeth.AuthenticationPrompt, AddressOf HandleKeyEvent
Dim ConnectionInfo As New ConnectionInfo(ServerName, 22, Login, PWAuthMeth, KIAuthMeth)
Dim SshClient1 As New SshClient(ConnectionInfo)
Try
SshClient1.Connect()
Catch ex As Exception
MsgBox(ex.ToString())
End Try
MsgBox(SshClient1.IsConnected)
End Sub
Private Sub HandleKeyEvent(sender As Object, e As Renci.SshNet.Common.AuthenticationPromptEventArgs)
For Each prompt As …Run Code Online (Sandbox Code Playgroud) 当我第一次下载文件并通过SSH.NET上传时,一切正常.
client.DownloadFile(url, x)
Using fs= System.IO.File.OpenRead(x)
sFtpClient.UploadFile(fs, fn, True)
End Using
Run Code Online (Sandbox Code Playgroud)
但是我现在必须(不下载文件)但上传文件流:
Dim ba As Byte() = client.DownloadData(url)
Dim stream As New MemoryStream()
stream.Write(ba, 0, ba.Length)
sFtpClient.UploadFile(stream, fn, True)
Run Code Online (Sandbox Code Playgroud)
发生的事情是该UploadFile方法认为它成功,但在实际的FTP上,文件创建的大小为0KB.
我做错了什么?我也尝试添加缓冲区大小,但它没有用.
我在网上找到了代码.我应该做这样的事情:
client.ChangeDirectory(pFileFolder);
client.Create(pFileName);
client.AppendAllText(pFileName, pContents);
Run Code Online (Sandbox Code Playgroud) 我在Azure cmdlet中使用PowerShell来尝试简单地查看blob存储中的项目
$StorageContext = New-AzureStorageContext -StorageAccountName 'myblobname' -StorageAccountKey '2341231234asdff2352354345=='
$Container = Get-AzureStorageContainer -Name 'mycontainer' -Context $StorageContext
$blobs = Get-AzureStorageBlob -Container $Container
Error:
Get-AzureStorageBlob : Could not get the storage context. Please pass in a storage context or set the current storage context.
Run Code Online (Sandbox Code Playgroud)
我100%确定凭据是正确的(这篇文章中只是随机缩短的凭证数据)
为什么我会收到此错误?
AzureRM使用了吗?AzureRM版本列为3.8.0.我需要哪些版本的脚本才能工作?
我正在使用 MSBuild。我安装了 Java 8。
我正在运行以下命令:
SonarQube.Scanner.MSBuild.exe begin /k:"ABC" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92" /d:sonar.verbose=true
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe" /t:rebuild
SonarQube.Scanner.MSBuild.exe end /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92"
Run Code Online (Sandbox Code Playgroud)
最后一步失败:
ERROR: Error during SonarQube Scanner execution
ERROR: The 'report' parameter is missing
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
The SonarQube Scanner did not complete successfully
12:53:21.909 Creating a summary markdown file...
12:53:21.918 Post-processing failed. Exit code: 1
Run Code Online (Sandbox Code Playgroud)
MSBuild 版本大于 14。
Java 8 已正确安装。文档表明 Java 8 就足够了。
我看了这个就有关SQL连接的处置问题.
我的问题是,简单地关闭一个sql连接有多糟糕,但是没有处理掉它?我们有一个简单的关闭功能,但从未处理过,每天使用1000次.简单地关闭它是否更好,或者关闭和处理它会更好吗?
我知道dispose()也会关闭连接,但是我想知道为什么close不会处理连接.
我有这个Azure Powershell脚本,它成功地将SQL Azure数据库备份到Azure Blob.
在目前的形式,它要求我通过AD登录.
我现在需要实现此脚本以特定间隔通过Azure功能执行.
脚本的第一个片段:
$subscriptionId = "YOUR AZURE SUBSCRIPTION ID"
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionId $subscriptionId
Run Code Online (Sandbox Code Playgroud)
因此,我不需要使用Login-AzureRmAccount,而是将其替换为不需要人工输入的方法.
我找到了这个链接:
https://cmatskas.com/automate-login-for-azure-powershell-scripts/
这是一次性手动创作 - 这是完美的.
然后,作者登录到这个新创建的应用程序
$psCred = New-Object System.Management.Automation.PSCredential($azureAccountName, $azurePassword)
Add-AzureRmAccount -Credential $psCred -TenantId e801a3ad-3690-4aa0-a142-1d77cb360b07 -ServicePrincipal
Run Code Online (Sandbox Code Playgroud)
我的问题:
这是我应该做的,以便能够自动化我的应用程序并防止人类登录?
在步骤1中创建的Azure AD应用程序 - 我可以使用此应用程序作为我的Azure功能的起点吗?
我在数据库表中有字符串,如下所示:
Peter/Parker/Spiderman/Marvel
Bruce/Wayne/Batman/DC
Run Code Online (Sandbox Code Playgroud)
SQL中是否有一种方法可以从字符串中提取特定值,例如
Name = MyColumn(0)
SurName = MyColumn(1)
Character = MyColumn(3)
Company = MyColumn(4)
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个现有的函数,它将一个cellobj作为输入参数,例如
MyFunction(cellObj)
Run Code Online (Sandbox Code Playgroud)
当有人点击表格中的单元格时,会使用此选项,表格中的HTML将如下所示:
MyFunction(this) //this is the cellObj
Run Code Online (Sandbox Code Playgroud)
现在我需要调用完全相同的函数,但我不在表中,我循环遍历行,我不能传递"this",因为它是行对象而不是单元格对象.因此,我的问题是如何从行对象中获取cellobject
例如
$("#gv tr:has(td)").each(function () {
var cellObj = $(this)........
MyFunction(cellObj);
})
Run Code Online (Sandbox Code Playgroud) 过去几天我已经阅读了这个和许多其他链接。
问题是我需要为用户为 mysite.com 打开的每个选项卡或浏览器都有一个唯一标识符(示例站点名称)
我不能使用唯一的会话,因为当我打开 mysite.com 并在会话中选择了例如“胡萝卜”时,那么 mysite.com 的所有其他选项卡/浏览器现在在特定会话值中都有“胡萝卜”。
但是服务器显然仍然唯一地标识每个浏览器/标签。有没有办法获得这个唯一的浏览器/标签 ID,或者创建一个唯一的?
我不是指通过 JavaScript 自己生成唯一 ID,我在 StackOverflow 上看到了一些很好的例子。问题是我需要在每个母版页上实现它,并在母版/非母版页之间携带它。也例如在我的例子中,它不会工作,因为我可以打开浏览器,如果我在几个页面上运行它 20 次,它会生成 20 个不同的 ID,例如当我无法跨端口传输值时。
所以请不要浪费每个人的时间,这不是一个随机的 GUID 创建问题,这个问题涉及为每个选项卡/浏览器获取一个唯一的可重新创建的 ID(如果它丢失),最好通过到服务器的链接来识别。
如何根据孔大小参数对多维数组进行“排序”?
例如:一个简单的例子是(从文本文件加载):
> Liv1.HoleSize[0] = 22 Liv1.HoleX[0] = 250 Liv1.HoleY[0] = -55
> Liv1.HoleSize[1] = 14 Liv1.HoleX[1] = 750 Liv1.HoleY[1] = 0
> Liv1.HoleSize[2] = 22 Liv1.HoleX[2] = 900 Liv1.HoleY[2] = -55
Run Code Online (Sandbox Code Playgroud)
那么必须导致:
> Liv1.HoleSize[0] = 14 Liv1.HoleX[0] = 750 Liv1.HoleY[0] = 0
> Liv1.HoleSize[1] = 22 Liv1.HoleX[1] = 250 Liv1.HoleY[1] = -55
> Liv1.HoleSize[2] = 22 Liv1.HoleX[2] = 900 Liv1.HoleY[2] = -55
Run Code Online (Sandbox Code Playgroud) 我需要在jenkins构建期间将$ {BUILD_NUMBER}传递给nuget和octo。
我不想使用特定的批处理文件
nuget pack -Version 1.1.${BUILD_NUMBER}
octo.exe push --package "C:\Jenkins\workspace\MyWorkspace\MyProject.1.1.${BUILD_NUMBER}.nupkg"
Run Code Online (Sandbox Code Playgroud)
我如何能够参数化上述命令以包含正确的内部版本号?
解决方案:
nuget pack -Version 1.1.%BUILD_NUMBER%
octo.exe push --package "C:\Jenkins\workspace\MyWorkspace\MyProject.1.1.%BUILD_NUMBER%.nupkg"
Run Code Online (Sandbox Code Playgroud)