0

問題

AspDotNetStorefront カートをバージョン 9.4 から 9.5 にアップグレードするときに、セットアップされたステージング サイトのバックエンドで新しい製品を更新または追加するために「admin」/product.aspx にアクセスしようとすると、以下のエラーが発生します。新しいバージョンをテストするために、既存のデータベースをコピーしてセットアップしました。

エラー:

 Exception of type 'System.Web.HttpUnhandledException' was thrown.
Inner Exception:
Page URL:/aesys/product.aspx
Source:System.Xml
Message:The variable or parameter 'GTINValue' is either not defined or it is out of scope.
Stack Trace:
at System.Xml.Xsl.XslCompiledTransform.LoadInternal(Object stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
at System.Xml.Xsl.XslCompiledTransform.Load(IXPathNavigable stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
at AspDotNetStorefrontCore.XmlPackage2..ctor(String PackageName, Customer cust, Int32 SkinID, String UserQuery, String AdditionalRuntimeParms, String OnlyRunNamedQuery, Boolean UseExtensions)
at AspDotNetStorefrontCore.XmlPackage2..ctor(String PackageName, Customer cust, Int32 SkinID, String UserQuery, String AdditionalRuntimeParms, String OnlyRunNamedQuery)
at AspDotNetStorefrontCore.XmlPackageManager.GetXmlPackageDisplayName(String packageName, Nullable`1 skinId)
at AspDotNetStorefrontCore.XmlPackageManager.<>c__DisplayClass0_2.b__5(String filePath)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.d__14`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.d__0.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at AspDotNetStorefrontCore.XmlPackageManager.GetXmlPackageInfosByPrefix(HttpContextBase httpContext, XmlPackageLocation searchLocations, String prefix, IEnumerable`1 skinIds)
at AspDotNetStorefrontControls.XmlPackageSelector.BuildXmlPackageListItems()
at AspDotNetStorefrontControls.XmlPackageSelector.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

質問1:

この変更により、ファイルが新しいバージョンで名前が変更または削除されたものを参照する既存の xml パッケージの一部で問題が発生しました。パッケージを更新するか、新しいパッケージを使用することができました。ただし、このエラーについてどうすればよいかわかりません。

これは xml パッケージ エラーですか? スタック トレースに「xmlPackageManager」などへの参照が表示されます。これは、ドキュメントで「内部パッケージ」と呼ばれるものに関するものでしょうか?

質問2:

system.xml とは何ですか? これはファイルですか?それはどこにある?

質問 3:

以下にリストされている「スタック トレース」を見ることで、何が起こっているのかを詳しく知ることは可能ですか? 他にどのような情報が必要ですか?

私が試したこと:

これに関連するものはオンラインで見つかりません。私は道を外れていると思いますが、「GTINValue」が宣言されていないか範囲外であると不平を言っているので、ファイル「admin」/product.aspx.csファイルでその参照を見つけました。「int GTINValue;」という行を削除して、値「int GTINValue = 1」を割り当て、データベース テーブル参照で「GTINValue」の代わりに「GTINValue」が見つかったため、「GTIN」に変更しようとしました。いずれの場合でも、同じエラーが発生しますか? その行を変更すると何らかの影響があると思いましたが、そうではないので、変更が登録されていないキャッシュの問題なのか、エラーがまったく別のものから来ているのかわかりません。

これを解決する方法がまったくわからないので、どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

0

質問1:

はい、これは XMLPackage エラーです。バージョン 9.5 は、XMLPackage 自体から XMLPackage 名を取得しようとします。これを行うには、リストしようとしている各 XMLPackage をコンパイルする必要があります。product.*.xml.config ファイルの 1 つが、存在しない $GTINValue を参照しています。すべての製品 XMLPackages を検索または削除して (これによりエラーが修正されます)、再度エラーが発生するまで一度に 1 つずつ追加し直すことができます。

質問2:

System.Xml は .Net の一部です: https://msdn.microsoft.com/en-us/library/system.xml(v=vs.110).aspx .これがエラーの原因です。 XMLPackages をコンパイルするライブラリ。このスタック トレースの最後の (下から順に) 関連するコードは次のとおりです。

at AspDotNetStorefrontCore.XmlPackage2..ctor(String PackageName, Customer cust, Int32 SkinID, String UserQuery, String AdditionalRuntimeParms, String OnlyRunNamedQuery, Boolean UseExtensions)

質問 3:

このスタック トレースから学ぶことはあまりないと思います。XMLPackage リストを作成してから XMLPackage 名を取得しようとしたときにエラーが発生していることは確かに示されていますが、これはパッケージをコンパイルして名前を取得する必要があることがわかっている場合にのみ役立ちます。

于 2016-03-10T14:38:32.860 に答える