| 分類:[ASP.NET (VB)]
Textファイルの書込みがVWD2008上ではうまく動くのですが、プログラムをサーバで動かすと Textファイルを書き込むところでエラーが発生して動きません。 IIS6.0の「セキュリティ」にユーザを「追加」する必要があるようなのですが、ググっても その方法がわかりませんでした。問題解決のアドバイスを頂けると助かります。
VWD2008 サーバ:Windows2003 IIS6.0 .NET Framework3.5
エラーの内容 例外の詳細: System.UnauthorizedAccessException: パス 'E:\*****\TextRW\test01.txt' へのアクセスが拒否されました。
この ASP.NET は、要求されたリソースへのアクセスを許可されていません。要求された ASP.NET へのリソースへアクセスを許可するかどうかを検討してください。ASP.NET プロセスには、アプリケーションに偽装が実行されていない場合は、通常、インターネット インフォメーション サーバー 5 では {コンピュータ名}\ASPNET、インターネット インフォメーション サーバー 6 ではネットワーク サービスが使用されます。<identity impersonate="true"/> 経由でアプリケーションに偽装が実行されている場合、ユーザーは、通常 IUSR_MACHINENAME に設定された匿名ユーザーか、または認証された要求ユーザーになります。
ASP.NET にファイルへのアクセスを許可するには、エクスプローラでファイルを右クリックし、[プロパティ] を選択して、[セキュリティ] タブを選択します。[追加] をクリックして、適切なユーザーまたはグループを追加します。ASP.NET アカウントを強調表示し、希望するアクセスのボックスをチェックします。
ソース エラー: 行 13: Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS") 行 14: 行 15: System.IO.File.WriteAllText(strFile, strInputText, enc) 行 16: End Sub 行 17:
【コード】 <%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub btnWrite_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim strFile As String = Server.MapPath("test01.txt") '入力するテキスト Dim strInputText As String = TextBox1.Text 'Shift_JISのファイルに書き込む。 Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")
System.IO.File.WriteAllText(strFile, strInputText, enc) End Sub
Protected Sub btnRead_Click(ByVal sender As Object, ByVal e As System.EventArgs) 'Dim strFile As String = "ファイル名" Dim strFile As String = Server.MapPath("test01.txt")
'Shift_JISのファイルを読み込む。 Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")
'テキストファイルの中身をすべて読み込む Dim strText As String = System.IO.File.ReadAllText(strFile, enc) TextBox1.Text = strText End Sub </script>
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> テキストファイルの書込み・読込み<br /> <br /> <asp:TextBox ID="TextBox1" runat="server" Height="175px" Width="327px" TextMode="MultiLine"></asp:TextBox><br /> <asp:Button ID="btnWrite" runat="server" OnClick="btnWrite_Click" Text="上書き書込み" /> <asp:Button ID="btnRead" runat="server" Text="読出し" OnClick="btnRead_Click" /> <br /> </div> </form> </body> </html> |