小编Mit*_*hir的帖子

IIS SMTP - 服务器响应为:5.7.1无法中继传出地址,仍然无法正常工作

我读过邮箱不可用.服务器响应为:5.7.1无法转发abc@xyz.com和所有答案.我通过添加了我的IP地址

IIS - >默认SMTP虚拟服务器 - >属性 - >访问 - >中继限制只是添加或排除>您关心的IP,应解决问题.

但它仍然给我上面的错误.我究竟做错了什么?

我正在使用Windows Sever 2003 R2和IIS6.

iis smtp

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

什么是客户端路由以及如何使用它?

如果有人能回答以下问题,我将很高兴

  1. 它是如何工作的?
  2. 为什么有必要?
  3. 它有什么改进?

client-side url-routing

17
推荐指数
2
解决办法
8425
查看次数

为什么我的应用程序如此等待同步?

我正在进行一项性能测试,该测试涉及几个客户,每个客户尽可能快地轰炸服务器150个请求.

服务器由3个WCF服务构成,一个通过httpbinding向外部打开,它通过net.pipe(IPC)与另外两个服务进行通信.其中一项服务负责数据库连接(SQL server 2008 R2).

此DB连接服务使用以下连接字符串增强:

Min Pool Size=20; Max Pool Size=1000; Connection Timeout=20;
Run Code Online (Sandbox Code Playgroud)

并且受WCF限制(与所有其他WCF服务一样).

我注意到当我激活1个客户端时可能需要3秒钟,但是当我激活3个客户端时,它可能需要8到9个或更多.

我检查了SQL服务器分析器,看看有多少并发进程使用,我看到只使用了大约8个进程.

所以我意识到在服务器中的某个地方请求排队而不是同时处理.

为了找到它的底部,我使用了一个性能分析器(确切地说是ANTS),它向我展示了大约70%的时间浪费在"等待同步"

当我打开调用图时,我发现两件看起来很奇怪的东西,但我不确定它们是什么意思:

  1. System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke正在树的顶部使用,是否可以进行并发处理?
  2. 所有同步问题都涉及某种SQL Server活动,如ExecuteNonQuery,ExecuteReader等(当我到达调用树的底部时)

我注意到数据库连接服务使用的是DAL项目(遗憾的是一些遗留代码),这是完全静态的.

阅读本文之后,我不确定DAL的代码是否存在问题,这里是存储过程调用的示例.

    public static int PerformStoredProcedure(string storedP,string ext,out string msg)
    {
        msg = "";
        SqlCommand command = GetSqlCommand(storedP,ext);
        command.Connection.Open();
        int result = (int)PerformStoredProcedure(command,out msg);
        command.Connection.Close();
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

通常从DB连接服务调用此方法:

    public static int PerformStoredProcedureWithParams(string storedP,string ext,out string msg, params object[] pars)
    {
        msg = "";
        SqlCommand command = GetSqlCommand(storedP,ext);
        UpdateCommandParams(command, pars);
        command.Connection.Open();
        int result = …
Run Code Online (Sandbox Code Playgroud)

.net c# concurrency wcf sql-server-2008

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

从Linux机器上的nodejs使用Active Directory连接到Sql Server

我有一个在Linux机器上运行的nodejs服务。我需要连接到Sql Server(Mssql)。

我正在使用mssql程序包,但在与AD连接时看不到任何支持。

还有一个Azure Keyvault,我们可以通过调用以下命令与连接到计算机的MSI连接:

import * as msRestAzure from 'ms-rest-azure'
msRestAzure.loginWithVmMSI({ resource: this.azureKeyVaultResourceName })
Run Code Online (Sandbox Code Playgroud)

有没有办法使用我从loginWithVmMSI获得的凭据并连接到Sql Server?有没有一种方法可以直接用AD调用Sql Server?

是否有其他驱动程序对此提供支持?乏味还是nodemssql?

sql-server node.js azure-active-directory node-mssql

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

JavaScript方法array.forEach在Chrome中有效吗?

这是我的演示.

我正在努力让JavaScript forEach方法在Google Chrome中运行.
Caniuse没有太多帮助.:(

任何帮助,将不胜感激!谢谢!

javascript google-chrome

6
推荐指数
2
解决办法
8382
查看次数

为什么并行版本比本例中的顺序版本慢?

在过去的几天里,我一直在学习关于并行性的知识,我遇到了这个例子.

我把它与顺序for循环并排放在一起,如下所示:

private static void NoParallelTest()
{
    int[] nums = Enumerable.Range(0, 1000000).ToArray();
    long total = 0;
    var watch = Stopwatch.StartNew();
    for (int i = 0; i < nums.Length; i++)
    {
        total += nums[i];
    }
    Console.WriteLine("NoParallel");
    Console.WriteLine(watch.ElapsedMilliseconds);
    Console.WriteLine("The total is {0}", total);
}
Run Code Online (Sandbox Code Playgroud)

我很惊讶地看到NoParallel方法的完成速度比网站上给出的并行示例快得多.

我有一台i5 PC.

我真的认为Parallel方法会更快完成.

对此有合理的解释吗?也许我误会了什么?

c# parallel-processing

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

首先在nodejs Winston logger中写入时间戳

我试图让时间戳首先出现,但它总是添加到 json 的末尾。

我使用过这个配置:

    var myFormat = winston.format.combine(winston.format.timestamp({format:'YYYY-MM-DD HH:mm:ss.SSS'}),
                                          winston.format.json());
    this.winstonLogger = winston.createLogger();
    this.winstonLogger.configure({
        level: 'info',
        format: myFormat,
        transports: [
            new winston.transports.Console(),
          ]
    });
Run Code Online (Sandbox Code Playgroud)

并得到如下日志:

{"level":"info","message":"app is loaded","timestamp":"2019-06-03 17:01:10.054"}
Run Code Online (Sandbox Code Playgroud)

我想要的只是它看起来像:

{"timestamp":"2019-06-03 17:01:10.054","level":"info","message":"app is loaded"}
Run Code Online (Sandbox Code Playgroud)

logging node.js winston

5
推荐指数
2
解决办法
4343
查看次数

AsyncFileUpload限制要上载的文件大小

我正在使用AsyncFileUpload以允许用户异步上传文件.

我想将文件的大小限制为1MB.

到目前为止,我看到的只能在上传完成时得到文件的长度

比如上传开始时:

(OnClientUploadStarted)

function UploadStarted(sender,args) 
{
   //if bigger than 1MB (approximately)
   if (args.get_length() > 1000000 ) 
   {
       ShowActionNotificationError( errorMessage); 
       return false;  
    }
}
Run Code Online (Sandbox Code Playgroud)

args.get_length()为null,所以我不能使用它...

上传完成后:

(OnClientUploadComplete)

function UploadComplete(sender,args) 
{
    //if bigger than 1MB (approximately)
    if (args.get_length() > 1000000 ) 
    {
        ShowActionNotificationError( errorMessage); 
        return false;  
    }
}
Run Code Online (Sandbox Code Playgroud)

工作正常,但文件已经上传...

那么在上传之前如何知道文件的大小呢?我错过了一些非常简单的事吗?

我真的想在不处理HTTP请求长度和排序的情况下这样做.

谢谢!

javascript asp.net ajax asyncfileupload

4
推荐指数
2
解决办法
8461
查看次数

ServiceReference是一个自托管的WCF服务

我目前正在维护和开发一个以ajax方式使用大量web服务的网站.

注册服务是在aspx中完成的,如下所示:

<asp:ScriptManagerProxy id="ScriptManager1" runat="server">
        <services>    
            <asp:ServiceReference Path="WebServices/WSAdministrator.asmx"></asp:ServiceReference>
        </services>
</asp:ScriptManagerProxy>
Run Code Online (Sandbox Code Playgroud)

并在javascript中使用服务是这样完成的

WSAdministrator.GetConsumerClubInfo(ConsumerClubId,
                                    OnSucceededToGetConsumerClubInfo,
                                    OnFailedToGetConsumerClubInfo);
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以轻松地引用自托管WCF服务(在同一台机器上).

有什么建议?

编辑:WCF服务在Windows服务上运行,它公开webHttpBinding和basicHttpBinding端点.

没有App_Code的情况下阅读ASP.Net WCF服务之后,我意识到我应该创建一个svc文件,它将作为服务的引用.

我创建了这个svc文件:

<%@ ServiceHost Language="C#" Service="MyService.Namespace.Contract" %>
Run Code Online (Sandbox Code Playgroud)

在web.config文件中我添加了以下行:

        <services>
        <service name="MyService.Namespace.Contract">
            <endpoint address="setAddress" binding="basicHttpBinding" contract="MyService.Namespace.ContractInterface"/>
        </service>
    </services>
Run Code Online (Sandbox Code Playgroud)

地址正常,但是当我尝试从svc访问引用时,我收到以下错误:

无法找到作为ServiceHost指令中的Service属性值提供的类型''.

我在这里错过了什么?

注意:有一些很好的答案,但所有我已经知道的事情,我的问题是如何使用asp.net引用我的自托管WCF服务,以便我可以从javascript使用它,这就是全部,为此我仍然没有答案......

我看到一些类似问题的回复告诉我们应该有一个IIS托管服务作为实际服务的"管道",然后ScriptManager应该引用它,也许这是唯一的答案......

asp.net ajax wcf web-services

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

为什么此加密邮件已损坏?

我在安全网站上问了这个问题,那里的人建议我应该在这里发布.

一些背景.我们拥有专有设备,可通过专有操作系统和其他通过Windows操作系统运行ac#dll的设备运行.两者都通过TCP连接联系我们的服务器,对于我们的服务器,两种类型的请求是相同的.TCP服务器通过http绑定将部分请求传输到自托管WCF服务.请求被加密,如链接中所示(就像C#dll加密它们一样).

我正在尝试切断TCP服务器并将请求直接发送到WCF服务.

我的问题是,看起来WCF服务收到请求字符串错误,它无法解密它.

似乎服务器端有额外的\ t \n接收字符串.除此之外它看起来一样.

这是服务器端的解密代码:

            byte[] byteChiperText = Encoding.Default.GetBytes(input);

            if (k.Length != 16)
            {
                throw new Exception("Wrong key size exception");
            }
            TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();

            des.Mode = CipherMode.ECB;
            des.Padding = PaddingMode.Zeros;
            des.Key = k;
            ICryptoTransform ic = des.CreateDecryptor();
            MemoryStream ms = new MemoryStream(byteChiperText);
            CryptoStream cStream = new CryptoStream(ms,
                 ic,
                 CryptoStreamMode.Read);
            StreamReader sReader = new StreamReader(cStream);
            byte[] data = new byte[byteChiperText.Length];
            int len = sReader.BaseStream.Read(data, 0, data.Length);
            output = Encoding.Default.GetString(data, 0, len);

            cStream.Close();
Run Code Online (Sandbox Code Playgroud)

.net c# encryption wcf

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