小编Jed*_*Jed的帖子

与SmtpClient.UseDefaultCredentials属性混淆

在我的MVC4应用程序中,我使用它SmtpClient通过Gmail的smtp.gmail.comSMTP服务器发送电子邮件.

我已使用以下设置配置了我的Web.Config文件:

<system.net>
 <mailSettings>
  <smtp deliveryMethod="Network">
   <network enableSsl="true" 
   defaultCredentials="false" 
   host="smtp.gmail.com" 
   port="587" 
   userName="xxMyUserNamexx@gmail.com" 
   password="xxMyPasswordxx" />
  </smtp>
 </mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

使用SmtpClient并发送电子邮件消息的方法如下所示:

public void SendMail(string fromDisplayName, string fromEmailAddress, string toEmailAddress, string subject, string body)
{
    MailAddress from = new MailAddress(fromEmailAddress, fromDisplayName);
    MailAddress to = new MailAddress(toEmailAddress);
    MailMessage mailMessage = new MailMessage(from, to);
    mailMessage.Body = body;
    mailMessage.Subject = subject;

    SmtpClient client = new SmtpClient();
    //client.UseDefaultCredentials = false;
    client.Send(mailMessage);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码按预期工作,很好.令我困惑的是注释行client.UseDefaultCredentials = false;- 如果我要取消注释该行,我将收到一条异常消息,指出:

SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.

更重要的是,如果我将UseDefaultCredentials属性设置为true或者 …

asp.net-mvc smtpclient

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

Xamarin.Android Intellisense无法在Visual Studio 2010中运行

我正在测试Visual Studio 2010中的Xamarin.Android并且注意到当我在Android Layout(.axml)文件中工作时我没有Android Intellisense.但是,当我在.cs文件中工作时,我确实得到了Android Intellisense.

例:

以下是我的Main.axml文件的屏幕截图,该文件位于我的Layout目录中.注意intellisense如何在Android命名空间中不包含任何内容.

没有Android Intellisense示例

我需要做什么才能让intellisense在.axml文件中显示Android命名空间?

intellisense visual-studio-2010 xamarin.android

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

如何修复SQL Server 2012的Visual Studio错误"此服务器版本不受支持..."

我最近在Windows Server 2008 R2计算机上安装了Visual Studio 2010和SQL Server 2012(包括所有更新/ Service Pack).

尝试从Visual Studio中处理SQL Server数据库时,VS会引发以下错误:

不支持此服务器版本.仅支持最多Microsoft SQL Server 2008的服务器

我记得当我将SQL Server 2008实例更新到SQL Server 2008 R2时,一段时间(在另一台计算机上)得到同样的错误.当时的修复是安装(或重新安装)Visual Studio 2010 SP1.

现在我再次收到此错误(在新计算机上),我认为重新安装VS SP1就像我回过头一样.但是,这样做并没有解决问题.

似乎Visual Studio可能需要另一个更新来支持SQL Server 2012实例.

为清楚起见,以下是我为产生错误所采取的步骤:(使用VS 2010sp1和SQL2012)

  1. 使用VS,创建Windows窗体应用程序
  2. 右键单击该项目,然后选择"添加">"新建项"
  3. 选择"基于服务的数据库"
  4. 取消"数据源配置向导"
  5. 数据库将显示在解决方案资源管理器中的项目下.双击新数据库
  6. 数据库将添加到Server Explorer的数据连接列表中
  7. 在Server Explorer中,打开数据库,右键单击Tables目录,然后选择"Add New Table"
  8. 抛出错误"不支持此服务器版本...."

任何它的价值的屏幕截图.. 在此输入图像描述 在此输入图像描述

我的问题是,有没有解决这个问题?如果是这样,它是什么?

sql-server visual-studio visual-studio-2010-sp1 sql-server-2012 sql-server-2012-express

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

检查重复记录VS尝试/捕获唯一键约束

我有一个数据库表,其中定义了唯一键约束,以避免发生重复记录.

我很好奇,如果在表上运行INSERT语句之前不手动检查重复记录是不好的做法.

换句话说,我应该使用WHERE子句运行SELECT语句,该子句检查我将要INSERT的记录的重复值.如果找到记录,则不要运行INSERT语句,否则继续运行I​​NSERT ....

要么

只需运行INSERT语句并尝试/捕获由于Unique Key违规而可能引发的异常.

我正在权衡这两个观点并且无法确定哪个是最好的 - 1.当我可以捕获异常VS 2时,不要浪费SELECT调用来检查重复项.不要因为实现丑陋的尝试而懒惰抓住逻辑VS 3. ???你的想法在这里?:)

sql select key unique

10
推荐指数
3
解决办法
1896
查看次数

是否可以在不使用连接符的情况下在字符串变量中包含C#变量?

.NET 3.5 C#是否允许我们在字符串变量中包含变量,而不必使用+ concatenator(或string.Format()).

例如(在伪,我使用$符号来指定变量):

DateTime d = DateTime.Now;
string s = "The date is $d";
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)

输出:

日期是4/12/2011 11:56:39 AM

编辑

由于提示string.Format()的一些响应,我只能假设当我提到" ...(或string.Format(),就此而言)时,我的原始帖子不清楚".要清楚,我很清楚string.Format()方法.但是,在我正在处理的特定项目中,string.Format()对我没有帮助(实际上比+连接器更差).

另外,我推断大多数/你们都想知道我的问题背后的动机是什么(我想如果我按原样阅读我的问题,我会有同样的感受).

如果你是一个好奇的人,这就是它的缺点:

我正在创建一个在Windows CE设备上运行的Web应用程序.由于Web服务器的工作原理,我在字符串变量中创建了整个网页内容(css,js,html等).例如,我的.cs托管代码可能有这样的东西:

string GetPageData()
    {
    string title = "Hello";
    DateTime date = DateTime.Now;

    string html = @"
    <!DOCTYPE html PUBLIC ...>
    <html>
    <head>
        <title>$title</title>
    </head>
    <body>
    <div>Hello StackO</div>
    <div>The date is $date</div>
    </body>
    </html>
    ";

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,能够在不需要连接的情况下指定变量,使事情变得更容易 - 特别是当内容增加时.

c# string string-interpolation .net-3.5

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

使用window.open()和document.write()时,"将图片另存为..."在Google Chrome中无效

在我的应用程序中,我需要允许用户右键单击图像以将图像保存到磁盘.但是,我注意到,使用我的特定代码,谷歌浏览器是唯一不允许用户"将图像另存为..."的浏览器,除非用户首先选择Open image in new tab,然后从那里选择Save image as...

由于所有其他主流浏览器(包括移动Chrome)都按预期工作,我不确定我是不是以标准/正确的方式实现我的代码,或者问题是否与Chrome有关.

例:

以下HTML是我正在做的精简版.它将允许您单击按钮以打开将包含图像的新窗口.

要测试/确认我上面描述的问题,请右键单击图像并选择Save image as..- 您应该注意到没有任何反应.但是,如果右键单击图像并选择Open image in new tab,则可以Save image as..从那里进行操作.

<html>
<head>
    <title></title>
    <script>
        function foo() {
            var tab = window.open();
            tab.document.write('<p>Right-click, then click "Save image as ..."</p><img src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png" />');
        }
    </script>
</head>
<body>
    <button onclick="foo();">Open</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是Chrome存在的问题,或者是有另一种方式,我可以使用window.open()连同document.write()获得Chrome浏览器像其他浏览器(即不必首先选择Open image in new tab.

google-chrome document.write window.open save-image

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

如何从Visual Studio Installer项目中删除"欢迎使用安装向导"文本

我有一个Visual Studio安装程序项目,我在Visual Studio 2010中,我无法弄清楚如何从向导的对话框中删除"欢迎使用[产品名称]安装向导"文本.

例如:如何从下面的屏幕截图中删除文本"欢迎使用Setup1安装向导"?

在此输入图像描述

installer setup-project visual-studio-2010

9
推荐指数
3
解决办法
8169
查看次数

如何从Windows服务中读取文本文件?

我已经安装了一个安装在c:\Program Files\My Service目录中的Windows服务.与可执行文件一起,我有一个安装在同一目录中的XML文件.服务使用此XML文件来获取用户定义的信息.

在服务的代码中,我读取文件就好像它是可执行文件的本地文件一样.例如:

DataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
Run Code Online (Sandbox Code Playgroud)

但是,当我运行该服务时,该服务抛出一个异常说:

找不到文件'C:\ Windows\system32\Foo.xml'

由于可执行文件存在于c:\Program Files\My Service我希望Windows服务中查找XML文件c:\Program Files\My Service\Foo.xml.显然,事实并非如此.

如何强制服务在服务可执行文件所在的同一位置查找(相对)Foo.xml文件?

c# windows-services

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

Internet Explorer返回错误的字符串长度

我遇到了一个IE调用JavaScript的错误.length如果/当字符串派生时,函数返回一个值为1的值.toLocaleString().

var d = new Date();
var locale = navigator.language;
var month = d.toLocaleString(locale, { month: "long"});
// month.length will return the length of the month string +1 
//(eg: if month = "March", month.length will return 6.)
Run Code Online (Sandbox Code Playgroud)

有趣的是,上面的代码示例将为以下内容返回true(在IE中):( month [0]应为"M")

month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
Run Code Online (Sandbox Code Playgroud)

在我的特定情况下,这导致我需要.slice()一个月的问题.示例:如果月份是3月,则IE将返回"Ma" month.slice(0,3)而不是"Mar".

这是IE的已知错误吗?是否有针对此问题的修复和/或解决方法?

在IE和Chrome/Firefox/Safari中运行这个小提琴并注意month.lengthIE中的错误.

我的环境:

操作系统:Win Server 2012 R2

IE版本:11.0.9600.18231(更新版本:11.0.29)

地区:英语/美国

javascript locale string-length internet-explorer-11

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

如何在Url.Content中包含MVC Razor变量?

使用MVC 3 Razor,如何在调用中指定变量@Url.Content().

例:

@{
var myVar = Request.QueryString["foo"];
}

<a href="@Url.Content("~/bar?@myvar")">click here</a>
Run Code Online (Sandbox Code Playgroud)

razor asp.net-mvc-3

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