-1

まず、C# の分野での習熟度の欠如について、事前に謝罪したいと思います。

私はこのテーマについてほとんど知識がありませんが、Web サイトの正確なコピーを作成する必要がある状況にありました。Web サイトは .NET 4.0 を使用しており、IIS 7 と MSSQL Server 2008 で実行されます。新しい Web サイトは、古い Web サイトのサブドメインとして設定されています。

元のデータベースの完全バックアップを作成し、新しいデータベースを作成して、元のバックアップで「復元」しました。変更したのは .mdf ファイルと .ldf ファイルだけです。

次に、実際のファイルをコピーして新しいフォルダーに貼り付け、構成ファイルを新しいデータベースで変更しました。

データベースに/からニュースを追加/削除するまで、すべてが完全に機能します。その時点で、Web サイトのフロント ページに次のメッセージが表示されます。

「/」アプリケーションでサーバー エラーが発生しました。

長さを 0 未満にすることはできません。

パラメータ名: 長さ

スタックトレース:

[ArgumentOutOfRangeException: Length cannot be less than zero.
 Parameter name: length]
 System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean               fAlwaysCopy) +10082776
 Tang.Core.Utility.HtmlHelper.CutText(String rawText, Int32 length) +242
  Tang.Website.UC.ArticleItems.GetLegacyDataTable(Int32 collectionId, Int32 maxRecord)   +2172
 Tang.Website.UC.ArticleItems.Page_Load(Object sender, EventArgs e) +150
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t,   EventArgs e) +25
  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
   System.Web.UI.Control.OnLoad(EventArgs e) +132
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428

別のエラーは、ユーザーがログインしているときです (これも「長さをゼロにすることはできません」)。

    <%-- <p class="news_date"><%# Eval("collectionitemdatetime", "{0:d}") %></p>--%>
            <p class="news_cont">
                **<%# Tang.Core.Utility.HtmlHelper.CutText( Eval("collectionitemtext").ToString(), 450) %>** --> THIS IS WHERE THE PROBLEM IS, OBVIOUSLY STRING IS EMPTY?</p>
        </div>
    </ItemTemplate>

オリジナルから「主要な」ものは何も編集されていないので、私は完全に迷っています。データベースで何か間違ったことをしているに違いありません。

EDIT:データベースをwebconfigファイルから[元のデータベースに]変更するとすぐに、すべてが機能し、アイテムを追加/削除/編集でき、それらがホームページに表示されます。したがって、コードに関連するものではなく、ウェブサイトとデータベースの間の何かでなければなりません

EDIT 2、解決策を見つけました:データベースを削除し、新しいデータベースを作成し、「復元」を行う代わりに、元のデータベースから「エクスポート」を行いました。主キーを手動で設定し、それらの一部を (Is Identify) に変更する必要がありました - はい、同じエラーが発生したためです。最もエレガントなソリューションではありませんが、少なくともすべてが機能しているようです。

ご協力ありがとうございました!

4

1 に答える 1

1

長さパラメータには -1 の値が CutText 関数に付いているようです。使用している ORM ツールはありますか? Entity フレームワークを使用する場合は、接続文字列を適切に設定する必要があります。おそらく、あなたのSQLセキュリティプロパティでは追加できません。ニュースを追加するときは、データベースを確認してください。

于 2012-07-11T14:48:24.650 に答える