28.08.2010, 17:47 | #181 |
Новичок
Регистрация: 15.03.2007
Сообщений: 5
Вес репутации: 0
|
Если код вывода ссылок стоит внутри UserControl какого-нибудь, то получается что мой UserControl рендерит ваш, поэтому события OnInit и OnLoad не вызываются - как результат Null Reference Exception.
Для проверки: default.aspx <%@ Page Language="C#" AutoEventWireup="false" %> <% System.Text.StringBuilder sb = new System.Text.StringBuilder(); System.IO.StringWriter tw = new System.IO.StringWriter(sb); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); System.Web.UI.Control ctrl = Page.LoadControl("control.ascx"); ctrl.RenderControl(hw); Response.Write(sb.ToString()); %> control.ascx содержит код показа ссылок: <%@ Control Language="C#" AutoEventWireup="false" %> <efe:SapeLinks ID="SapeLinks1" runat="server"/> Сделал костыль в SapeLinks.cs вида ... private bool _initizlized=false; private bool _loaded = false; ... protected override void OnInit(EventArgs e) { _initizlized = true; ... protected override void OnLoad(EventArgs e) { _loaded = true; ... protected override void Render(HtmlTextWriter writer) { if (!_initizlized) OnInit(null); if (!_loaded) OnLoad(null); ... |
28.08.2010, 17:53 | #182 |
Новичок
Регистрация: 26.01.2009
Адрес: Красноярск
Сообщений: 93
Вес репутации: 188
|
Приветствую, fearg0.
Согласно классическому стилю реализации вы неправильно унаследовали методы-обработчики событий. Вы можете или унаследовать их правильно: Код:
protected override void OnInit(EventArgs e) { _initizlized = true; base.OnInit(e); } |
04.09.2010, 18:47 | #183 |
Новичок
Регистрация: 15.11.2009
Сообщений: 8
Вес репутации: 0
|
Вот такая вот ошибка сегодня возникла (код новый версии 0.5):
[ArgumentNullException: Значение не может быть неопределенным. Parameter name: key] System.ThrowHelper.ThrowArgumentNullException(Exce ptionArgument argument) +44 System.Collections.Generic.Dictionary`2.FindEntry( TKey key) +7457569 System.Collections.Generic.Dictionary`2.get_Item(T Key key) +12 effetto.Sape.RussianNormalizer.GetFixedUrl(String url) +571 effetto.Sape.SapeUrl..ctor(String rawUrl, String getParams) +55 effetto.Sape.SapeControl.OnInit(EventArgs e) +221 effetto.Sape.SapeLinks.OnInit(EventArgs e) +15 System.Web.UI.Control.InitRecursive(Control namingContainer) +333 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378 |
05.09.2010, 22:44 | #184 |
Новичок
Регистрация: 15.11.2009
Сообщений: 8
Вес репутации: 0
|
Попробовал удалить файл sape.bin, вот что теперь выводит (сам файл создался автоматом снова):
Server Error in '/' Application. Данный ключ отсутствует в словаре. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствует в словаре. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [KeyNotFoundException: Данный ключ отсутствует в словаре.] System.ThrowHelper.ThrowKeyNotFoundException() +28 System.Collections.Generic.Dictionary`2.get_Item(T Key key) +7455948 effetto.Sape.RussianNormalizer.GetFixedXML(String url) +195 effetto.Sape.SapeFactory.RequestHostFromDispenser( SapeUser user, String hostname) +472 effetto.Sape.SapeFactory.GetHost(SapeUser user, String host) +421 effetto.Sape.SapeControl.OnInit(EventArgs e) +137 effetto.Sape.SapeLinks.OnInit(EventArgs e) +15 System.Web.UI.Control.InitRecursive(Control namingContainer) +333 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378 Version Information: Microsoft .NET Framework Version:2.0.50727.4952; ASP.NET Version:2.0.50727.4927 |
25.09.2010, 05:43 | #186 |
Новичок
Регистрация: 24.09.2010
Сообщений: 19
Вес репутации: 0
|
На странице выдается
Код:
<!--check code--> При переводе флага CacheInSQL="false" в true - вылезает ошибка. Походу табла dbo.sape не создалась, в исходниках есть dc.dbml - там похожая, вручную создавать?? (давайте код таблички) Код:
<?xml version="1.0" encoding="windows-1251" ?> <!-- SERVER --> <configuration> <!-- sape --> <configSections> <sectionGroup name="effetto.Sape"> <section name="SapeConfig" type="effetto.Sape.SapeConfigSection, SAPE" allowLocation="true" requirePermission="false" allowDefinition="Everywhere"/> </sectionGroup> </configSections> <connectionStrings> <add name="SapeConnectionString" connectionString=" data source=db_srv; database=db_name; User ID=db_log; Password=db_pwd; "/> </connectionStrings> <effetto.Sape> <SapeConfig UserId="uid" CacheTimeout="60" CacheInSQL="false" ConnectionStringName="SapeConnectionString" SystemId="47474747-4747-4747-4747-474747474747" ExpireTimeout="600" Host="" UrlAnalyzer="true" QueryAnalyzer="true" QueryFilter="false" QueryParameters="" IgnoreCase="true" RussianNormalizer="true" ForceCheckCode="true"> <DefaultDocuments> <add Name="Default.aspx" /> </DefaultDocuments> </SapeConfig> </effetto.Sape> <system.web> <pages buffer="true" enableSessionState="true" enableViewState="false" validateRequest="false" autoEventWireup="false" > <!-- sape --> <controls><add tagPrefix="efe" namespace="effetto.Sape" assembly="SAPE"/></controls> </pages> ... Код:
Server Error in '/' Application. Invalid object name 'dbo.sape'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.sape'. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [SqlException (0x80131904): Invalid object name 'dbo.sape'.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1953274 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849707 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33 System.Data.SqlClient.SqlDataReader.get_MetaData() +96 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12 System.Data.Common.DbCommand.ExecuteReader() +12 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +332 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +113 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +344 System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +23 System.Linq.Queryable.Count(IQueryable`1 source) +240 effetto.Sape.SapeFactory.LoadBase() +523 effetto.Sape.SapeFactory..ctor() +287 effetto.Sape.SapeFactory.get_Factory() +29 effetto.Sape.SapeControl.OnInit(EventArgs e) +47 effetto.Sape.SapeLinks.OnInit(EventArgs e) +15 System.Web.UI.Control.InitRecursive(Control namingContainer) +333 System.Web.UI.Control.InitRecursive(Control namingContainer) +210 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378 Version Information: Microsoft .NET Framework Version:2.0.50727.4206; ASP.NET Version:2.0.50727.4205 Создал табличку: Код:
create table [dbo].sape( Id UNIQUEIDENTIFIER DEFAULT NEWID(), Data VarBinary(MAX) NOT NULL ) В таблу занеслась одна строка с кодом и байтами, в app_data пусто. На странице все-равно вылазиить только код: Код:
<!--check code--> На странице установлен: Код:
<efe:SapeLinks runat="server"/> Добавлено через 3 минуты Занес Host="my_domain.ru" - все равно пусто Последний раз редактировалось lurii; 25.09.2010 в 05:43. Причина: Добавлено сообщение |
25.09.2010, 11:02 | #187 |
Новичок
Регистрация: 26.01.2009
Адрес: Красноярск
Сообщений: 93
Вес репутации: 188
|
2lurii: Сайт в сапу добавился? модерацию прошел? ссылки есть? если сылок нет, то вывод и должен быть пустым или только чек код.
Добавлено через 1 минуту 2 SerZH: отправил модуль на тестирование, так как такую ошибку наши ребята уже исправляли. Ошибка повяляется часто? можете выслать бинарник данных? Последний раз редактировалось effetto; 25.09.2010 в 11:02. Причина: Добавлено сообщение |
25.09.2010, 18:05 | #188 | |
Новичок
Регистрация: 24.09.2010
Сообщений: 19
Вес репутации: 0
|
Цитата:
2) Почему автоматом не создалась таблица? - нет проверки ее существования или просто не обернуто в исключение? 3) Может сделать флаг debug который бы выводил текущую операцию и статус ее успешной обработки? - в конце типа ОК - все в норме. 4) Урлы и их ссылки хранятся в бинарнике и будут нагружать память при каждом обращении к странице? |
|
25.09.2010, 19:34 | #189 |
Новичок
Регистрация: 26.01.2009
Адрес: Красноярск
Сообщений: 93
Вес репутации: 188
|
1) никакого или чек код, если он включен;
2) автоматом она не создается, таблица примитивная а используют этот метод единицы, создайте если нужна, в документации все описано; 3) все и так ок, если вы видете чек код, для этого он и создан; 4) урлы и ссылки хранятся в одном экземпляре для всех страниц, тестирование показало, что для высоко и среждне нагруженых ресурсов эти жертвы ничто по сравнению с затратами на чтение из файла, если данные в памяти не хранить. |
01.01.2011, 18:30 | #190 |
Новичок
Регистрация: 24.09.2010
Сообщений: 19
Вес репутации: 0
|
Вопрос по размещению одной ссылки, но в разных местах страницы.
Место вывода рассчитывается: int ban_pos=ban_pos_calc(2,re("id")); и далее на странице должно выводится в одной из позиций конструкцией: if(ban_pos==1){%><!--#include virtual="/sape.aspx"--><br /><%}; ... if(ban_pos==2){%><!--#include virtual="/sape.aspx"--><br /><%}; Соответственно выводится только баннер с позицией 1, т.е. приоритет вывода одинаковый и вторая позиция всегда в пролете ... а инклуды отрабатывают оба ... (даааа, это не php) Как поступить? (ссылка на странице одна, но должна выводиться в разных местах) Добавлено через 16 часов 55 минут доперло, ставлю в нужном месте: <%Response.Write(SapeFactory.Factory.GetUser().Get Host().GetPageOrDefault().GetLinksAsString());%> теперь ссылка выводится по рандому Последний раз редактировалось lurii; 01.01.2011 в 18:30. Причина: Добавлено сообщение |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
НОВЫЙ ГОД!!!!!!!!!!!! | Globalzru | Курилка | 34 | 01.01.2009 20:39 |
новый хостинг | awe | Ошибки при работе с системой | 8 | 10.10.2008 18:30 |
Новый акк | goglin | Вопросы по работе системы | 18 | 04.10.2008 15:40 |
Новый вид анкоров? | Chervechok | Курилка | 9 | 17.09.2008 08:21 |
новый сайт.. | brucekiev | Вопросы от новичков | 8 | 21.12.2007 18:26 |
Часовой пояс GMT +3, время: 21:51.