我有一行代码检查目录是否存在,然后获取其中的文件列表.
System.IO.Directory.Exists(@"\\Server\Folder\");
Run Code Online (Sandbox Code Playgroud)
我在测试时工作(从visual studio运行),但是当我部署网站时,它总是返回false.
我对另一个文件夹,在另一台服务器(比如说Server2)上进行相同的验证,它运行正常.
然后我认为这是一个访问问题,但共享文件夹和网络可以访问所有人...还有其他原因导致它不起作用吗?
我有一个带有c#代码的asp.net项目.我有一个名为GlobalVariable的静态类,我存储了一些信息,例如当前选择的产品.
但是,我看到当有两个用户使用该网站时,如果有人更改了所选产品,则会为每个人更改.静态变量似乎与每个人都是共同的.
我想创建(来自c#代码)某种会话变量,它只使用c#代码,但不仅来自页面,而且来自任何类.
我的计算机上安装了两个版本的python.3.2 64位安装在C:\ Python32 \和2.7 32位安装在C:\ Python27中.
我还在注册表(64位和32位)中挖掘了一个C#应用程序,以获取最合适的python版本的安装路径,具体取决于各种条件.
我有一个名为Code.py的脚本,它由C#应用程序使用它选择的python版本运行.
在Code.py脚本,我想要运行位于用C另一个脚本:\ Python32\Scripts中或C:\ Python27\Scripts中,这取决于使用了哪个Python版本上.但是,我想知道用于运行我当前脚本的python.exe文件的安装路径是什么.有没有办法做到这一点,或者我必须将C#应用程序选择的安装路径传达为我运行脚本时的一个参数(我想避免)?
编辑:我使用此代码将脚本中的脚本称为外部脚本
p = subprocess.Popen(["python", installPath + "\\Scripts\\Flake8", file], stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud) 我正在使用Mock从具有特定返回值的类替换方法.它工作得很好,也许有点太好......我这样做(见下文),但是在下一个测试类中,我重复使用密码类而不进行模拟,并且放置在该测试中的模拟仍然有效.
from utils import password as pass_helper
class TestPassword(unittest.TestCase):
def setUp(self):
self.username = "user"
self.password = "Test_1234_pass"
pass_helper._get_password_from_keyboard = Mock(return_value=self.password)
def test_password(self):
password = pass_helper._get_password_from_keyboard(self.username)
self.assertEqual(password, self.password)
Run Code Online (Sandbox Code Playgroud)
我尝试通过这样的方式撤消TearDown方法中的mock,但它不起作用.
pass_helper._get_password_from_keyboard = pass_helper._get_password_from_keyboard
Run Code Online (Sandbox Code Playgroud)
如何恢复类方法的原始功能?
我有一个Parallel.ForEach循环做一些处理.但是第一个操作是在未包含密钥的情况下在字典中添加值.添加它时出错,它表示密钥已经在字典中.我猜这个密钥是在这个线程的.Contains检查之后但是在添加之前由并行进程添加的.除了将该行放在try-catch中之外,还有另一个我可以用来防止该错误的简单解决方案吗?
Parallel.ForEach(branchFixes, b =>
{
Parallel.ForEach(b.Value, t =>
{
var team = t.Key;
if (!resultTeamDict.ContainsKey(team))
{
resultTeamDict.Add(team, new Dictionary<FixItem, Dictionary<BranchInfo, bool>>());
}
});
});
Run Code Online (Sandbox Code Playgroud) 我想在安装文件夹后调用一个函数,但是InstallEnv函数似乎被调用了好几次,也许每个文件都是文件夹(待确认).有没有办法在安装所有这些文件后只调用一次?我不能使用该Run部分,因为我想要使用返回代码进行错误捕获.
Source: "InputFiles\virtualenv-1.8.2\*"; DestDir: "{tmp}/virtualenv"; \
Flags: recursesubdirs; AfterInstall: InstallEnv;
Run Code Online (Sandbox Code Playgroud) 我必须使用REST API将文件和信息上传到服务器.该API使用多部分表单,但我似乎无法正确使用它.
以下是我根据API文档使用的信息.
表格参数:
示例请求:
POST /api/v1/distribution HTTP/1.1
Host: api.company.onbe
Authorization: t=...
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZayrf7leHxinyQsX
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="release_notes_url"
http://releases/3.0.0/release_notes_3_0_0.pdf
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="description"
This is the new distribution!
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="zip_file"; filename="BackEnd-3.0.0.zip"
Content-Type: application/x-zip-compressed
------WebKitFormBoundaryZayrf7leHxinyQsX--
Run Code Online (Sandbox Code Playgroud)
我尝试了几个东西,例如下面的代码,但是我一直从服务器得到错误的请求错误.
import requests
file= open('BackEnd-3.0.0.zip','r').read()
url = 'api.company.onbe/api/v1/distribution'
payload = {
'description' :'Some desc',
'release_notes_url':'Someurl.pdf',
'zip_file': file
}
response = requests.post(url, data=payload)
Run Code Online (Sandbox Code Playgroud) 我想要一个提供REST API的小型Web服务器,外部工具可以调用存储非常少量的数据(写入或读取数据)并提供一个html页面来显示该数据.
数据将是一个简单的矩阵(2d表).我打算让外部工具用json格式的REST api(表的一个方格)发送一个数据条目(它只包含三个字符串).也许将数据存储在xml文件中.
我希望该Web服务器位于docker容器中,因此可以在我们的云环境中轻松部署(使用卷,因此不会丢失数据).它将在Linux环境下运行.
我知道这是一个广泛的问题,但我想知道在这种情况下使用什么技术.我应该使用Python吗?我实际上不知道该怎么做.我过去做过docker容器用于其他事情,在JAVA中做了一些REST api,但没有这样的.
你有建议或资源吗?
我目前正在尝试在卸载时进行验证.在Pascal脚本函数中,在Inno Setup中,我想搜索特定的进程,如果可能的话使用通配符.然后,遍历所有查找结果,获取图像名称和图像路径名称,以检查即将卸载的程序是否与正在运行的程序相同.
有没有办法做到这一点?
在我的批处理文件中,我正在执行一个简单的命令来获取VirtualBox安装路径.
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\VirtualBox /v InstallDir
Run Code Online (Sandbox Code Playgroud)
当我从命令行执行批处理文件时,它会产生奇迹,但如果我从Inno Setup启动相同的批处理文件,则不会给出任何值.
经过一段时间的测试,我发现它只是在从Inno Setup启动批处理文件时才在注册表的32位部分进行搜索.
为了测试这个理论,我查看了位于那里的32位注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NuGet\Repository
Run Code Online (Sandbox Code Playgroud)
在我的批处理文件中,我输入以下命令(注意我没有指定Wow6432Node,这应该是错误的)
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\NuGet\Repository\
Run Code Online (Sandbox Code Playgroud)
实际上,从命令行运行批处理文件时,它找不到注册表项.但是,当从Inno Setup启动相同的批处理文件时,它会发现\ NuGet\repository就好了.
现在的问题是.如何使用我的批处理文件获取64位注册表项(Virtual Box),以便它可以在命令行和Inno Setup中运行?
这是一个愚蠢的问题......我正试图将一个图片框拖放到一个面板上.我遵循了一些例子,但它不起作用.从不引发面板的DragDrop事件.我在网站上搜索了一个解决方案并发现了一年多的两个主题,但他们的解决方案没有用.我创建了一个新项目,只有这个代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
panel1.DragDrop +=new DragEventHandler(panel1_DragDrop);
panel1.DragOver +=new DragEventHandler(panel1_DragOver);
}
private void panel1_DragOver(object sender, DragEventArgs e)
{
Console.WriteLine("DragOver");
}
private void panel1_DragDrop(object sender, DragEventArgs e)
{
Console.WriteLine("DragDrop");
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine("Mouse");
pictureBox1.DoDragDrop(pictureBox1.Text, DragDropEffects.All);
}
}
Run Code Online (Sandbox Code Playgroud)
我还将面板的AllowDrop和窗体设置为true.DragOver和MouseDown被引发.此外,当我拖动图片框时,光标变成一个禁止的圆圈,就像是一个不允许的操作.有没有办法让光标成为图片框中的图像?我不希望图片框移动,只是为了向面板添加项目.
我有 Inno Setup 卸载程序的问题。我有一个 exe 文件,我想执行它以跟踪安装和卸载。exe 非常简单,它会向服务器发送消息。
[Files]
Source: "Tracker\LocalSandboxInstallTracker.exe"; DestDir: "{app}/Tracker";
Source: "Tracker\LocalSandboxInstallTracker.exe.config"; DestDir: "{app}/Tracker";
Source: "Tracker\Tracker.Client.dll"; DestDir: "{app}/Tracker";
[Run]
Filename: "{app}\Tracker\LocalSandboxInstallTracker.exe"; Parameters: " {#MyAppVersion} install"; Flags: runhidden; StatusMsg: "Sending tracking data..."
[Code]
procedure InitializeUninstallProgressForm();
var
ResultCode: Integer;
begin
Exec ('{app}\Tracker\LocalSandboxInstallTracker.exe',' {#MyAppVersion} uninstall','',SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
Run Code Online (Sandbox Code Playgroud)
安装时的调用效果很好,但卸载时则不行。我在我的 Exec 命令上放置了一个断点,它确实通过了那里,但似乎没有调用 exe。
inno-setup ×4
c# ×3
asp.net ×2
pascalscript ×2
python ×2
32bit-64bit ×1
batch-file ×1
dictionary ×1
directory ×1
docker ×1
linux ×1
mocking ×1
pascal ×1
post ×1
python-2.7 ×1
raiseevent ×1
registry ×1
rest ×1
tasklist ×1
teardown ×1
unit-testing ×1
web-services ×1
windows ×1