小编Rob*_*man的帖子

.Net套接字 - 10054错误

我们有一个Windows服务,已经愉快地在生产中运行了一年多.就在最近,它开始给它带来麻烦.我没有套接字编程的经验,但我必须尝试找到问题的原因 - 太棒了!

该服务安装在中央服务器上.它"监听"来自全国各地商店的大约400台服务器的数据.

启动时,服务将获取从中收集数据所需的商店列表以及商店服务器的ipaddress.然后循环遍历列表并执行以下代码:

IPEndPoint lep = new IPEndPoint(lipa.AddressList[lipa.AddressList.GetUpperBound(0)], (int)portNumber);
PosListener posListener = new PosListener(lep,this.pendingBacklog,storeTable,messageList);
Run Code Online (Sandbox Code Playgroud)

PosListner的构造函数如下:

internal PosListener(IPEndPoint lep, int pendingBacklog, Hashtable storeTable, ArrayList messageList) : base(lep.Address.AddressFamily,SocketType.Stream,ProtocolType.Tcp) 
{
   ITraceState trState = PosApplication.Trace.StartProc("PosListener");
   try 
   {         
       // Setup listener
       this.ngcIPAddress = lep.Address.ToString();
       this.ngcPort = lep.Port;
       this.storeTable = storeTable;
       this.storeLock = new ReaderWriterLock();
       this.messageList = messageList;
       this.messageLock = new ReaderWriterLock();
       this.handlerList = new ArrayList();
       this.handlerLock = new ReaderWriterLock();
       this.asyncCallback = new AsyncCallback(this.CallbackAccept);
       this.Bind(lep);
       this.Listen(pendingBacklog);
       // Start listening
       PosApplication.PosSocketsEventLog.WriteEntry("Starting Listener on NGC Port …
Run Code Online (Sandbox Code Playgroud)

.net sockets udp

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

从远程计算机卸载程序

我想从远程计算机上卸载程序.我知道用于安装的MSI的位置,它位于远程服务器上,路径可以在$MSIPathFile下面的变量中看到.

当我运行以下脚本时:

$TargetServer = "d-vasbiz01"
$MSIPathFile = "c:\biztalkdeployment\x.Int.MIS-3.0.0.msi"

Invoke-Command -Computer $TargetServer -ScriptBlock {Param($MSIPathFile, $UninstallFlag, $QuietFlag) Start-Process msiexec.exe "/x" $MSIPathFile "/qn"} -ArgumentList "$MSIPathFile", "/x", "/qn"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Invoke-Command -Computer $TargetServer -ScriptBlock {Param($MSIPathFile, $UninstallFlag, $QuietFlag) Start-Process msiexec.exe "/x" $MSIPathFile "/qn"} -ArgumentList "$MSIPathFile", "/x", "/qn"
A positional parameter cannot be found that accepts argument 'c:\biztalkdeployment\x.Int.MIS-3.0.0.msi'.
+ CategoryInfo          : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

powershell

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

BizTalk - 无法提升属性

使用BizTalk 2013r2 CU1,我为我的入站xsd创建了一个属性模式并部署了该应用程序.

当我使用标准的"xml接收"管道收到样本xml文档时,我可以看到所需的元素按预期被提升到上下文中.

然后,我创建了一个自定义管道,其中包含"Disassemble"阶段中的"XML反汇编程序"组件和"验证"阶段中的自定义组件.此自定义组件需要从上下文中读取提升的属性.但是,我发现当我将接收位置从"xml接收"管道切换到我的自定义管道时,我的属性不会被提升.我在自定义组件中使用以下代码来写出消息上下文中的项列表:

for (int x = 0; x < contextList.CountProperties; x++)
        {
            contextList.ReadAt(x, out name, out nspace);
            string value = contextList.Read(name, nspace).ToString();
            contextItems += "Name: " + name + " - " + "Namespace: " + nspace + " - " + value + "\r\n";
            if (name == _ContextPropertyName && nspace == _ContextPropertyNamespace)
                promotedPropFound = true;

        }
        Helpers.EventLogHelper eventHelper = new EventLogHelper();
        eventHelper.LogEvent(string.Format("Context items:{0}", contextItems));

        if (promotedPropFound == false)
            throw new Exception(string.Format("Unable to find promoted property with …
Run Code Online (Sandbox Code Playgroud)

biztalk pipeline biztalk-2013r2

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

Serilog是记录类型而不是对象内容

我是Serilog的新手,请尝试一下是否有帮助。我正在使用Serilog v2和Serilog.Sinks.MsSqlServer v5

我有以下控制台应用程序代码:

static void Main(string[] args)
    {
        var logger = CreateLogger();

        var employee = new Person()
        {
            Name = "Rob",
            Age = 45
        };

        logger.Debug("Employee details {Employee}", employee);

        Console.ReadKey();

    }

private static ILogger CreateLogger()
    {

        string levelString = SSOSettingsFileManager.SSOSettingsFileReader.ReadString(
                            "LCC.Common", "Serilog.MinimumLevel");

        SerilogLevel level = (SerilogLevel)Enum.Parse(typeof(SerilogLevel), levelString);

        string conString = SSOSettingsFileManager.SSOSettingsFileReader.ReadString(
                            "LCC.Common", "Serilog.ConnectionString");

        var levelSwitch = new LoggingLevelSwitch();
        levelSwitch.MinimumLevel = (Serilog.Events.LogEventLevel)level;

        return new LoggerConfiguration()
            .MinimumLevel.ControlledBy(levelSwitch)
            .WriteTo.MSSqlServer(connectionString: conString, tableName: "Logs", autoCreateSqlTable: true)
            .CreateLogger();
    }
Run Code Online (Sandbox Code Playgroud)

我希望可以记录到Person的详细信息,即Name Rob和Age45。但是,我发现以下记录到Sql Server Sink的Properties列中:

<properties><property key='Employee'>ConsoleApplication1.Person</property></properties> …
Run Code Online (Sandbox Code Playgroud)

c# logging serilog

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

Azure 数据工厂 - 为找到的每个文件插入 Sql 行

我需要一个数据工厂来:

  • 检查 Azure blob 容器中的 csv 文件
  • 对于每个 csv 文件
    • 将一行插入 Azure Sql 表中,将文件名作为列值

blob 容器中只有一个 csv 文件,该文件包含五行。

到目前为止,我有以下行动:

顶层

在 for-each 操作中,我有一个复制操作。我确实给了它一个动态数据集的源,该数据集的文件名设置为 @Item().name 的参数。然而,结果有 5 行被插入到目标表中,而我原本期望只有 1 行。

for-each 循环仅执行一次,但我不知道使用保存文件名和时间戳的变量的数据源?

azure-data-factory

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

C#if then else速记将无法编译

以下编译好了:

if (_logon.LogonToConnector())
{
    MessageBox.Show("Logon Success");
}
else
{
    MessageBox.Show("Logon Failed");
}
Run Code Online (Sandbox Code Playgroud)

但是对于更简洁的等价物:

_logon.LogonToConnector() ? MessageBox.Show("Logon Success") : MessageBox.Show("Logon Failure");
Run Code Online (Sandbox Code Playgroud)

编译器给出错误:

只有赋值,调用,递增,递减和新对象表达式才能用作语句UniformTestClient

我哪里做错了?

c# c#-6.0

0
推荐指数
1
解决办法
90
查看次数

Javascript转换为数组

我需要创建一个对象数组,每个对象包含"LicenseRefNo","FPPRNO"等字段.

该网站对C#控制器进行ajax调用,该控制器当前返回以下json:

"[{\"LicenseRefNo\":\"17/00031/HMO\",\"FPPRNO\":\"AGE146\"},{\"LicenseRefNo\":\"16/00031/HMO\",\"FPPRNO\":\"AGE146\"}]"
Run Code Online (Sandbox Code Playgroud)

这似乎几乎是正确的,但我需要将其设置为KOGrid的gridOptions.data属性.似乎javascript代码然后遇到问题,因为KOGrid需要是一个可观察的数组,并且要创建其中一个我需要一个javascript数组.

我怎样才能将我拥有的字符串转换为数组?

javascript knockout.js kogrid

-1
推荐指数
1
解决办法
206
查看次数