まず、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) に変更する必要がありました - はい、同じエラーが発生したためです。最もエレガントなソリューションではありませんが、少なくともすべてが機能しているようです。
ご協力ありがとうございました!