При использовании стандартного компонента Report Viewer ASP.NET IIS блокирует сессию пока не отработает отчет: все страницы приложения не загружаются, пока отчет не отработает полностью.
Решение:
http://stackoverflow.com/questions/29985689/reportviewer-is-blocking-other-functionalites-until-the-loading-of-report-viewer
Если страница не использует сессию, то отключить Session State.
В нашем случае в сессии хранилось название отчета, поэтому можно выставить ReadOnly.
Параметр можно выставить только на той странице, которая использует компонент Report Viewer.
<%@ Page Title="" Language="C#"AutoEventWireup="true" CodeBehind="ReportViewer.aspx.cs" Inherits="Reports.ReportViewer" EnableSessionState="ReadOnly" %>
пятница, 28 августа 2015 г.
четверг, 27 августа 2015 г.
RabbitMQ pika с Python 3
При использовании стандартного модуля pika в окружении Python 3 возникает ошибка
Traceback (most recent call last):
File "c:\temp\2\receive.py", line 5, in <module>
host='localhost'))
File "C:\Users\dnazarov\Python_ve\env34_rabbitmq\lib\site-packages\pika\connec
tion.py", line 361, in __init__
if host and self._validate_host(host):
File "C:\Users\dnazarov\Python_ve\env34_rabbitmq\lib\site-packages\pika\connec
tion.py", line 207, in _validate_host
if not isinstance(host, basestring):
NameError: global name 'basestring' is not defined
Для корректной работы можно использовать модуль python3-pika
pip install python3-pikaПроверено на Python 3.4
Стандартный пример будет выглядеть так.
send.py
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello world!!')
print ("[x] Sent 'Hello world!!'")
connection.close()
receive.py
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
print (' [*] Waiting for messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
print (" [x] Received %r" % (body,))
channel.basic_consume(callback,
queue='hello',
no_ack=True)
channel.start_consuming()
вторник, 11 августа 2015 г.
Case-insensitiv поиск объектов в Django
Для поиска объектов без учета регистра можно использовать фильтр iexact.
https://docs.djangoproject.com/en/1.8/ref/models/querysets/#std:fieldlookup-iexact
Blog.objects.get(name__iexact='beatles blog')
Blog.objects.get(name__iexact=None)
Во view можно использовать следующую конструкцию
def location(request, location_name):
curLocation = get_object_or_404(Location, name__iexact=location_name)
return render(
request,
'app/location.html',
RequestContext(request,
{
'title':'About',
'location': curLocation
})
)
https://docs.djangoproject.com/en/1.8/ref/models/querysets/#std:fieldlookup-iexact
Blog.objects.get(name__iexact='beatles blog')
Blog.objects.get(name__iexact=None)
Во view можно использовать следующую конструкцию
def location(request, location_name):
curLocation = get_object_or_404(Location, name__iexact=location_name)
return render(
request,
'app/location.html',
RequestContext(request,
{
'title':'About',
'location': curLocation
})
)
Case-insensitive шаблоны URL в Django
Чтобы шаблоны URL в Django не были чувствительны к регистру необходимо добавить (?i) в начало шаблона.
urlpatterns = patterns('',
(r'^(?i)admin/(.*)', admin.site.root),
(r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
(r'^(?i)login/$', 'django.contrib.auth.views.login'),
(r'^(?i)logout/$', do_logout),
)
urlpatterns = patterns('',
(r'^(?i)admin/(.*)', admin.site.root),
(r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
(r'^(?i)login/$', 'django.contrib.auth.views.login'),
(r'^(?i)logout/$', do_logout),
)
Подписаться на:
Сообщения (Atom)