2012-04-30 6 views
0

以内に私はaddress.NowIからとに付加する文字列ビルダを使用してクラスファイルにExecのmsdb.dbo.sp_send_dbmailを使用しています(溶液の中で、私が作成したローカルソリューションフォルダになりますファイルをアタッシュケースする必要がありますフォルダ)のasp.net言及パス名ローカル

  strSql.Append("Exec msdb.dbo.sp_send_dbmail @profile_name='SLAToolProfile',");strSql.Append("@recipients='"); 
     strSql.Append(eMailToaddresses); 

     strSql.Append("',@file_attachments='"); 
     string Path = "~/Material/study material.doc"; 
     strSql.Append(Path); 

私はソリューション内のローカルフォルダにする必要がありますパスを言及しない.How私はファイル添付エラーを得た上記のフォーマットを使用していますか?

答えて

0

あなたはVirtualPathUtility.ToAbsoluteメソッドを使用する必要があります。

strSql.Append("Exec msdb.dbo.sp_send_dbmail @profile_name='SLAToolProfile',");strSql.Append("@recipients='"); 
     strSql.Append(eMailToaddresses); 

     strSql.Append("',@file_attachments='"); 
     string Path = VirtualPathUtility.ToAbsolute("~/Material/study material.doc"); 
     strSql.Append(Path); 

動作するはずその

http://msdn.microsoft.com/en-us/library/ms150160(v=vs.90).aspx

更新

[OK]を、もう少し掘りを行っていることが判明sp_send_dbmailを使用すると、添付ファイルの場所は、 DBサーバーコードを実行しているマシンではありません。だから最初の問題は、このファイルの場所をDBサーバーがアクセスできるようにすることです。つまり、ファイル共有とUNCの場所を使用することです。したがって、~は使用できません。 Dbサーバーにはあなたのルートが理解できません。

+0

私はこれを試しましたが、添付ファイル/SLAEMSite/Material/Material.docが無効です。エラー – Domnic

+0

私はこのspに慣れていません。ファイルへのローカルパス、つまりC:\ docs \ file.docまたは仮想パスhttp:\\ www.test.com \ file.docが必要ですか?私は以前のことを想像するだろうか? – Liam

0

使用この:

string filename = "study material.doc"; 
string storePath = Server.MapPath("~/Material"); 
string finalPath = Path.Combine(storePath,filename); 

Server.MapPath()は絶対的なアプリケーションのパスへのあなたの仮想パスを変換します。

関連する問題