2017-02-15 8 views
1

Я только что добавил новое приложение к моему приложению Django, и все работало нормально на месте. Однако, когда я нажимаю Heroku, я получаю следующую ошибку при попытке получить доступ к представлениям из нового приложения или связанным с ним страницам администратора. Остальная часть сайта работает нормально.Как решить '[Errno 111] Connection Refused' в приложении Django на Heroku?

Ошибка (из журналов приложений Heroku):

2017-02-15T10:14:13.305769+00:00 app[web.1]:  self.connection = connection_class(self.host, self.port, **connection_params) 
2017-02-15T10:14:13.305769+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/smtplib.py", line 256, in __init__ 
2017-02-15T10:14:13.305770+00:00 app[web.1]:  (code, msg) = self.connect(host, port) 
2017-02-15T10:14:13.305770+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/smtplib.py", line 316, in connect 
2017-02-15T10:14:13.305771+00:00 app[web.1]:  self.sock = self._get_socket(host, port, self.timeout) 
2017-02-15T10:14:13.305771+00:00 app[web.1]:  return socket.create_connection((host, port), timeout) 
2017-02-15T10:14:13.305771+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/smtplib.py", line 291, in _get_socket 
2017-02-15T10:14:13.305772+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/socket.py", line 575, in create_connection 
2017-02-15T10:14:13.305772+00:00 app[web.1]:  raise err 
2017-02-15T10:14:13.305773+00:00 app[web.1]: error: [Errno 111] Connection refused 

Настройки

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) 

# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = ****** 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = False 
TEMPLATE_DEBUG = False 

ALLOWED_HOSTS = ['*'] 

ADMINS = (
    (***, ***), 
) 

# Application definition 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'feed', 
    'cv', 
    'hon', 
    'blog', 
    'markdown_deux', 
) 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
) 

ROOT_URLCONF = 'Site.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'Site.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

# Parse database configuration from $DATABASE_URL 

import dj_database_url 
DATABASES['default'] =   
dj_database_url.config(default=os.environ.get('DATABASE_URL')) 

# Honor the 'X-Forwarded-Proto' header for request.is_secure() 
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') 

# Internationalization 
# https://docs.djangoproject.com/en/1.8/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.8/howto/static-files/ 

import os 
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = 'staticfiles' 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
os.path.join(BASE_DIR, '../../feed/static/'), 
) 

я не мог найти много документации для этой конкретной ошибки, так что любая помощь будет оценена. Что случилось? Сообщите мне, есть ли какая-либо дополнительная информация, которую я могу предоставить, которая поможет.

Обновление: Что касается первых двух комментариев, мое «приложение» является статическим сайтом, кроме бэкэнда администратора django, и я не пытаюсь отправлять электронные письма в любом месте своего кода. Страница, которая генерирует журналы ошибок выше, - это просто домашняя страница простого блога, в которой перечислены все сообщения (которых в настоящее время нет, потому что я не могу их добавить).

+2

Это происходит от smtplib, поэтому, предположительно, это проблема, когда вы пытаетесь отправить электронные письма. Вам нужно показать код, вызывающий это, а также ваши настройки. –

+1

Я согласен с Даниэлем, ваш след показывает проблему с smtplib, опубликовать ваши настройки или отправить по электронной почте код –

+1

Спасибо вам за помощь, я обновил вопрос с запрошенной информацией. Я не пытаюсь отправлять электронную почту в любом месте своего кода, может ли геройку/дджанго что-то делать по какой-то причине? Я не верю, что я использую smtplib где угодно. –

ответ

0

Я не уверен, в чем была причина, но эта проблема разрешилась после того, как я сделал фиктивный переход к одному из файлов (добавив пробел в конце строки) и повторно нажал приложение на Heroku.

+0

Если кто-то сталкивается с одной и той же проблемой и имеет более просветительское решение, я с удовольствием понижу это на лучший ответ. –

Смежные вопросы