小编Sco*_*ham的帖子

如何在不使用smtp的情况下通过Exchange服务器发送电子邮件?

我正在尝试通过我们公司的交换服务器发送来自c#代码的电子邮件.

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("exchangebox1.mycompany.com");
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage("Me@myCompany.com",
                "Them@mycompany.com",
                "title here",
                "body here");
            client.Send(msg);
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到SmptException,说"服务不可用,关闭传输通道.服务器响应是4.3.2服务不可用,关闭传输通道".

我正在解释这意味着我们的交换机上没有启用SMTP,我需要使用本机Exchange Server命令来发送邮件.这是对的,还是SMTP应该始终有效?

此外,是否可以将Exchange服务器配置为仅允许某些计算机/用户通过SMTP发送主服务器?

如何在不使用SMTP的情况下通过Exchange Server发送邮件?

谢谢.

c# email

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

如何修复WiX警告:组件"X"包含HKCU注册表KeyPath的每用户和每台机器数据

我正在尝试维护一些Wix代码,并收到以下警告:

warning LGHT1076 : ICE57: Component 'FILE_MY_ASSOCIATION' has both per-user and per-machine data with an HKCU Registry KeyPath.
Run Code Online (Sandbox Code Playgroud)

从以下代码:

<Component Id="FILE_MY_ASSOCIATION" Guid="E1DF42A5-BD00-4a80-9BE5-B66A3EF0576E" Win64="$(var.Variables_Win64)">
  <RegistryKey Root="HKCU" Key="Software\MyComany\MyProduct">
    <RegistryValue Value="" Type="string" KeyPath="yes" />
  </RegistryKey>
  <ProgId Icon="FILE_MY_FILETYPE_ICON" Id="MY_FILE_EXTENSION" Description="My Product File" >
    <Extension Id="myext" Advertise="no" >
      <Verb Id="Open" Argument="&quot;%1&quot;" TargetFile="MYUI_EXE_FILE"/>
    </Extension>
  </ProgId>
</Component>
Run Code Online (Sandbox Code Playgroud)

我无法解决什么是错的,或者这是一个警告,我真的需要担心.

  • 我是否需要担心并修复此警告?在某些情况下,代码是否会导致问题?
  • 另外,我想知道,为什么注册表项使用HKCU而不是HKLM.如果我把它改成HKLM.警告消失了,但这会影响安装程序的行为吗?

谢谢.

wix

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

保留周期:为什么这么糟糕?

有两个对象A和B. A创建B并保留它.B有一个指向A的实例变量,保留它.所以两者都保持着彼此.有人说,这种强大的联系不能再被打破.

但情况确实如此吗?

如果B将释放A,则A可以轻松释放B,因此B将被释放.一旦它的其他所有者(我想必须有人)释放它,它就会被解除分配.

或者此问题仅适用于A不创建B的情况,但只是通过将其保留在实例变量中来保存对它的强引用?我仍然不明白为什么这种联系不能再被打破.

iphone cocoa-touch memory-management

10
推荐指数
2
解决办法
3223
查看次数

我在哪里可以下载PEVerify.exe工具?

我遇到了InvalidProgramException.本文:

http://support.microsoft.com/kb/312544/en-us

建议我运行PEVerify.exe,但我似乎无法找到它.你知道我从哪里可以得到它吗?

谢谢.

.net c# peverify

10
推荐指数
2
解决办法
7308
查看次数

在MsBuild中,CreateProperty和PropertyGroup之间有什么区别?

可以使用以下任一方法创建属性:

<Target Name="A">
    <PropertyGroup>
        <DogSound>Bark</DogSound>
    </PropertyGroup>
</Target>

<Target Name="B">
    <CreateProperty Value="Bark">
        <Output TaskParameter="Value" PropertyName="DogSound"/>
    </CreateProperty>
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,如果有的话,目标A和B的语义之间有什么区别?

谢谢.


注意:我正在使用msbuild 3.5.我相信PropertyGroup语法在早期版本的msbuild中的目标内部不起作用,但对于ItemGroups也是如此.CreateItem已被弃用,但CreateProperty没有,所以我想知道CreateProperty是否还有使用PropertyGroup的东西,如果是的话,那是什么.

msbuild

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

停止intellisense会话提前结束

我创建了一个Visual Studio扩展,通过继承Microsoft.VisualStudio.Language.Intellisense.ICompletionSource,为我的特定于域的语言提供智能感知.

除了我的语言的关键字中的有效字符是下划线'_'之外,这样做没问题.

当intellisense弹出打开时,您可以开始输入并且智能感知框的内容将被过滤,以显示那些以您键入的内容开头的项目.

但是,如果用户键入下划线,似乎以特殊方式处理,而不是继续过滤可用的智能感知项列表,它将提交当前项并结束智能感知会话.

有没有办法停止这种行为,以便下划线可以被视为与常规字母数字字符相同?

languageservice visual-studio-extensions visual-studio-2015

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

如何在Visual Studio C++中恢复auto_ptr 17

此博客页面提到Visual Studio删除了一些标准功能:

https://blogs.msdn.microsoft.com/vcblog/2017/12/08/c17-feature-removals-and-deprecations/

我有一个项目,它使用一些现在使用C++ 17功能的C++库.该项目还使用了第三方库websocketpp(https://github.com/zaphoyd/websocketpp),它仍使用一些现已删除的功能.例如auto_ptr和binary_function.我收到编译错误,他们不是'std'的成员.

上面的博客提到可以使用细粒度控制恢复已删除的功能.我想我现在可以用它来编译这个项目.从长远来看,我将看到将websocketpp升级到C++ 17或用其他东西替换它.

但是,恢复功能的魔力是什么?#define有什么我需要的吗?如果是这样,什么?

deprecated c++17 visual-studio-2017

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

双击时如何使Windows批处理文件暂停?

我写了一个批处理文件来自动执行某些任务.我可以从命令窗口运行它,它运行并显示结果.如果我从资源管理器中双击它,它会立即运行并终止,所以我看不到结果.

有没有办法让批处理文件窗口保持打开状态,直到我解雇它,如果我通过双击图标启动它?

当我从命令行调用批处理文件时,我不想传递/ nopause参数.我想要一个解决方案,我可以使用批处理文件,而不必做任何太特别的事情?

谢谢.

注意我不希望它从命令行运行时暂停!! 我可以从另一个批处理文件中调用此批处理文件来执行一系列操作.在那种情况下,我不能坐在那里继续打击进入.

理想情况下,最好是我可以在批处理文件中放入一些代码,以便它可以解决它从哪里开始,然后暂停或不适当.

windows batch-file

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

是否可以从32位应用程序读取64位进程的进程内存?

在Windows 64位上,我有一个32位进程读取其他32位进程的内存,我希望它能够读取64位进程.

ReadProcessMemory用于读取内存,但它有32位的限制.有没有办法在64位进程上执行相当于ReadProcessMemory的操作?

我知道我可以写一个64位进程,并推出从我的32位进程做的工作,但我不知道是否有一些其他的选项,这样我不需要写一个64位进程.

谢谢.

windows 32bit-64bit

8
推荐指数
2
解决办法
5607
查看次数

为什么printf格式的unicode参数没有?

使用printf将双字节字符串格式化为单字节字符串时:

printf("%ls\n", L"s:\\??????Hello");   // %ls for a wide string (%s varies meaning depending on the project's unicode settings).
Run Code Online (Sandbox Code Playgroud)

显然,有些字符不能表示为ascii字符,所以有时我看到双字节字符变成'?'的行为.标记字符.但是,这似乎取决于特定的角色.对于上面的printf,输出是:

s:\
Run Code Online (Sandbox Code Playgroud)

我希望我可以得到类似的东西:

s:\??????Hello
Run Code Online (Sandbox Code Playgroud)

我担心我已经失去了这个例子,但是当我遇到unicode字符时,我想一个字符串,用'?'替换第一个字符串 然后放弃了其余的.

所以,我的问题是,当您将宽字符串格式化为单字节字符串时应该发生什么.这里的文档:http://msdn.microsoft.com/en-us/library/hf4y5e3w.aspx说"字符显示到第一个空字符".但是,我没有看到.这是printf中的一个错误,还是我在某处记录的行为,如果有的话,在哪里.

谢谢你的帮助.

UPDATE

感谢人们给我替代使用printf的答案.我将改为另类,但出于好奇,我真的很感兴趣为什么printf没有可靠的记录行为.看起来好像它的实现者竭尽全力使它不起作用.

c c++ unicode visual-studio-2010

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