C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: Textファイルがサーバに書き込めないです


(過去ログ 72 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■42207 / inTopicNo.1)  Textファイルがサーバに書き込めないです
  
□投稿者/ masa2 (24回)-(2009/10/09(Fri) 18:43:10)

分類:[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>

引用返信 編集キー/
■42211 / inTopicNo.2)  Re[1]: Textファイルがサーバに書き込めないです
□投稿者/ Jitta on the way (460回)-(2009/10/09(Fri) 19:27:34)
No42207 (masa2 さん) に返信
プログラムから書き込みを行うパスを特定して、そのパスに ASPNET アカウントに対する書き込み権を与えて下さい。
引用返信 編集キー/
■42223 / inTopicNo.3)  Re[2]: Textファイルがサーバに書き込めないです
□投稿者/ サトシ (23回)-(2009/10/09(Fri) 22:53:17)
2009/10/09(Fri) 23:00:06 編集(投稿者)

間違えました。申し訳ございません。
引用返信 編集キー/
■42224 / inTopicNo.4)  Re[3]: Textファイルがサーバに書き込めないです
□投稿者/ サトシ (24回)-(2009/10/09(Fri) 22:55:06)
2009/10/09(Fri) 23:00:54 編集(投稿者)

間違えました。申し訳ございません。
引用返信 編集キー/
■42225 / inTopicNo.5)  Re[4]: Textファイルがサーバに書き込めないです
□投稿者/ やじゅ (1368回)-(2009/10/09(Fri) 22:59:56)
やじゅ さんの Web サイト
No42224 (サトシ さん) に返信

>Textファイルの書込みがVWD2008上ではうまく動くのですが、プログラムをサーバで動かすと
>Textファイルを書き込むところでエラーが発生して動きません。

Visual Web Developer が App_Data フォルダを作成する際、ASPNET ユーザー アカウントまたは
NETWORK SERVICE ユーザー アカウントに対して、フォルダへの読み取りアクセス許可および
書き込みアクセス許可が付与されます。

なので、VWD2008上ではうまく動くのですが
サーバーは自分で作成する必要がありますので、下記を参考にするといいかも
http://msdn.microsoft.com/ja-jp/library/445z2s49.aspx
引用返信 編集キー/
■42228 / inTopicNo.6)  Re[5]: Textファイルがサーバに書き込めないです
□投稿者/ 囚人 (420回)-(2009/10/09(Fri) 23:16:47)
>Visual Web Developer が App_Data フォルダを作成する際、ASPNET ユーザー アカウントまたは
>NETWORK SERVICE ユーザー アカウントに対して、フォルダへの読み取りアクセス許可および
>書き込みアクセス許可が付与されます。


そんな凝った事してましたっけ?
単に、開発用のWebサーバー(正式名称がいつまで経ってもさっぱり分からん)が、今開発するためにログオンしているユーザーのコンテキストとして起動するだけじゃなかったかな。要するに開発者がいじれるところはどこでもいじれる。

引用返信 編集キー/
■42320 / inTopicNo.7)  Re[6]: Textファイルがサーバに書き込めないです
□投稿者/ masa2 (25回)-(2009/10/13(Tue) 09:52:08)
Jittaさん、やじゅさん、囚人さん、お返事ありがとうございます。

やじゅさん
> サーバーは自分で作成する必要がありますので、下記を参考にするといいかも
> http://msdn.microsoft.com/ja-jp/library/445z2s49.aspx
この情報がヒントになり、Win2003サーバのエクスプローラで、対象フォルダ「TextRW」フォルダの
プロパティのセキュリティの対象ユーザの書込みにチェックを入れる方法で、
サーバでのTextファイルの書込み動作が正常に動く様になりました。

フォルダの書込み権限設定はWin2003の管理ツールのIISマネジャで行うんたよなあ。と言う
先入観で、IISマネジャでの設定にしか意識が行ってませんでした。Win2003サーバの
エクスプローラで設定すれば良かったんですね。

アドバイス頂いた皆さん、ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -