46

さて、これは本当に私を悩ませ始めています。「C:\Projects\MyTestProject\」にある簡単な Web プロジェクトのセットアップがあります。私のマシンの IIS では、仮想ディレクトリをこの場所にマップして、サイトをローカルで実行できるようにしました (Visual Studio から実行できることは理解しています。この方法の方が気に入っています)。この仮想ディレクトリに「mtp」という名前を付け、http://localhost/mtp/index.aspx経由でアクセスします。これはすべて正常に機能しています。

しかし、Cookie を作成しようとするたびに、書き出されることはありませんか? FF3 と IE7 でこれを試してみましたが、Cookie が書き出されません。理解できません。ホストファイルに「127.0.0.1 localhost」がありますが、他にできることは何も思いつきません。アドバイスをありがとう。

ジェームズ

4

3 に答える 3

95

Cookie の仕様では 2 つの名前とその間のドットが必要なため、Cookie ドメインを「localhost」にすることはできません。これが私がそれを解決した方法です:

  1. これを %WINDIR%\System32\drivers\etc\hosts ファイルに追加します: 127.0.0.1 dev.livesite.com

  2. 開発中は、 http://localhostの代わりにhttp://dev.livesite.comを使用します

  3. Cookie を作成するときは、「.livesite.com」を Cookie ドメイン (先頭にドットを付けたもの) として使用します。最新のブラウザでは先頭のドットは不要になりましたが、後方互換性のためにとにかく使用したい場合があります。

  4. すべてのサイトで動作するようになりました:

于 2010-04-26T14:31:38.387 に答える
17

答えが選ばれたことがないので、私はまだそこに何かを投げることができると思います.

localhost で実行されているアプリケーションで Cookie が書き込まれない場合がある理由の 1 つは、web.config の httpCookies 設定です。ドメイン属性が特定のドメインに設定されていて、localhost で実行している場合、Cookie は書き込まれませんでした。

開発中のドメイン属性を削除すると、Cookie が次のように書き込まれます。

<!-- Development -->
<httpCookies httpOnlyCookies="true" requireSSL="false" />
<!-- Production -->
<!--<httpCookies domain=".domain.com" httpOnlyCookies="true" requireSSL="true" />-->
于 2014-05-28T18:03:34.073 に答える
0

Cookieに有効期限を割り当てていますか?デフォルトでは、ブラウザセッションが期限切れになるとCookieが期限切れになります。つまり、Cookieはディスクに何も書き込みません。

于 2008-12-23T22:21:47.553 に答える