您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)無(wú)法在asp.net中獲取iis目錄如何解決,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
代碼如下:
public void Send(string from, string to, string subject, string body)
{
var msgMail = new MailMessage(from, to, subject, body);
msgMail.IsBodyHtml = true;
var server = new SmtpClient("localhost");
server.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
server.UseDefaultCredentials = true;
server.Send(msgMail);
}
可能它曾經(jīng)工作,但是當(dāng)你切換到或初步部署到新的Windows 2008 服務(wù)器時(shí),你會(huì)遇到錯(cuò)誤提示信息"Cannot get IIS Pickup Directory!"
現(xiàn)在,我經(jīng)常稱(chēng)呼自己為世界上最厲害的系統(tǒng)管理員。這不是我研究的方向。我并不非常擅長(zhǎng),但是有時(shí)在實(shí)際工作中我不得不面對(duì)和解決這些問(wèn)題以獲取報(bào)酬。
1) SMTP服務(wù)是否安裝?
你的Web服務(wù)器或許還沒(méi)有安裝SMTP服務(wù),所以進(jìn)入服務(wù)管理中確定SMTP服務(wù)在功能列表中。如果不在,就需要你添加上去。
2) SMTP是否已配置?
僅僅確定SMTP服務(wù)已經(jīng)安裝是不夠的。首先,當(dāng)你服務(wù)器啟動(dòng)時(shí)(我曾經(jīng)遇到些客戶(hù)端軟件安裝前可以發(fā)送郵件,但是之后就不可以了,他們重啟了服務(wù)器,而Mail服務(wù)沒(méi)啟動(dòng),就這么簡(jiǎn)單),確保你的SMTP服務(wù)也跟著自動(dòng)啟動(dòng)。進(jìn)入服務(wù),確保SMTP服務(wù)在那里,并且已經(jīng)啟動(dòng),啟動(dòng)類(lèi)型也為自動(dòng)。
然后,你應(yīng)該配置SMTP服務(wù)——說(shuō)句實(shí)話,我對(duì)此知道的不多,所以我就不詳細(xì)解釋了,但是你需要知道SMTP仍然是IIS6.0的一部分,所以你可以在IIS6.0的管理界面找到它。一個(gè)快速突破點(diǎn),因?yàn)樗赡懿环狭艘恍┙邮锗]件服務(wù)器需要一個(gè)完整的合格域名的要求,而你的服務(wù)器可能只有一個(gè)被嚴(yán)格被限制使用的簡(jiǎn)單域名,比如像“Server15”之類(lèi)的,所以在SMTP屬性中,Delivery標(biāo)簽下 ,點(diǎn)擊添加按鈕,給服務(wù)器一個(gè)真正的完整的滿(mǎn)足要求的域名。
3) 防火墻是打開(kāi)的嗎?
你的一些操作有可能與防火墻沖突,所以現(xiàn)在是個(gè)好時(shí)機(jī)去排除SMTP安裝故障。你可以通過(guò)Telnet本機(jī)通過(guò)端口25,手動(dòng)給自己發(fā)個(gè)簡(jiǎn)單的郵件。下面一個(gè)例子可以照著做。
復(fù)制代碼 代碼如下:
telnet localhost 25
HELO somehost.com
MAIL FROM: yourname@somedomain.com
RCPT TO: the_to_address@somedomain.com
DATA
Subject: the subject of the mail
Blah blah blah message body
點(diǎn)擊回車(chē)鍵,過(guò)會(huì)進(jìn)入發(fā)件箱 如果你不能連接,或者郵件不能送達(dá),這里還有一些其他問(wèn)題需要你解決,因?yàn)榉阑饓κ遣粫?huì)影響拾取目錄的獲取。
4) IIS是否有權(quán)限獲取元數(shù)據(jù)(拾取目錄信息)
這里我們將會(huì)遇到實(shí)際的出錯(cuò)原因--你在網(wǎng)站跑的程序也許沒(méi)有權(quán)限獲取保存著拾取目錄名的IIS 元數(shù)據(jù)(metabase),這通常就是引起錯(cuò)誤的原因。
你需要下載IIS 6.0 資源包。里面有你需要用到的“metaacl.vbs”腳本而我不需要的。[點(diǎn)我下載]
下載并安裝,然后運(yùn)行Metabase Explorer(你可以搜索它,我的在“Program Files (x86)\IIS Resources\Metabase Explorer”目錄下)。 你應(yīng)該在你的IIS進(jìn)程為SmtpSvc服務(wù)添加讀權(quán)限(我為IIS_IUSRS組添加了權(quán)限,在配置中查看為你工作的是否有權(quán)限)。
5) IIS是否有權(quán)限寫(xiě)入拾取目錄
下面這步只是補(bǔ)充,因?yàn)槟阍谙麓问褂镁W(wǎng)站來(lái)發(fā)送郵件可能會(huì)遇到權(quán)限錯(cuò)誤。這時(shí),你需要為你的IIS用戶(hù)添加寫(xiě)入拾取目錄的權(quán)限(對(duì)我而言,我為“IIS_IUSES”添加了拾取目錄“c:\inetpub\mailroot”的寫(xiě)入權(quán)限)。
這樣不管怎樣,使它為我工作了,但是對(duì)任意的服務(wù)器來(lái)說(shuō),可能因?yàn)槲尹c(diǎn)擊了某些地方對(duì)程序有著關(guān)鍵作用的一些有魔力的多選框,所以如果你仍有問(wèn)題,或者知道這些問(wèn)題的答案,請(qǐng)?jiān)谠u(píng)論中提出,正如我所提到的,我可能修改了一些自己沒(méi)注意到的地方,導(dǎo)致可以發(fā)送郵件。如有不足,我將及時(shí)改正。
以上就是無(wú)法在asp.net中獲取iis目錄如何解決,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。